【问题标题】:How can I insert an array of bytes as text in the SQL Server 2008?如何在 SQL Server 2008 中将字节数组作为文本插入?
【发布时间】:2012-01-13 22:32:46
【问题描述】:

我使用带有正确 sql 插入语句的文本文件在我的测试项目中进行批量加载。我将此语句应用于空表以加载数据。但是我遇到了写字节数组的问题。

如何编写用于传递字节数组的正确插入语句?将 SQL Server 2008 中的字节数组理解为十六进制字符串?

添加

我需要一些可以应用于 SQL Server 的字符串来插入一个字节数组。 类似的东西:

INSERT INTO T(SomeBlobColumn) VALUES (0x666F6F)

或

INSERT INTO T(SomeBlobColumn) VALUES (CAST('666F6F' AS BINARY))

【问题讨论】:

  • 如果您要问的话,可以使用INSERT INTO T(SomeBlobColumn) VALUES (0x666F6F)?
  • @MartinSmith,这是否意味着 0x... 是正确写入字节数组?
  • 这就是在 TSQL 语句中表示二进制文字的方式。但我不确定这是否是你想要做的?您还可以使用 OPENROWSET 或使用 bcp 实用程序或应用程序代码从 TSQL 中的文件导入二进制数据...

标签: sql sql-server insert


【解决方案1】:

您可以尝试这种方法(在 c# 中):

using(SqlCommand cmd = new SqlCommand("INSERT INTO TableName(BinaryColumn) VALUES (@InputParameter)", sqlConnection))
{
    cmd.Parameters.Add("@InputParameter", SqlDbType.VarBinary, 8000).Value = byteArray;
    cmd.ExecuteNonQuery();
}

【讨论】:

  • 我假设您发布了一些 c# 代码,但我不确定您如何知道 OP 正在尝试使用它。
  • +1 表示方法。而且由于 OP 使用的是 NHibernate,因为它已经发布了有关它的问题,所以我认为编写一个小型实用程序不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
相关资源
最近更新 更多