2012-01-13 43 views
1

對不起,我的英文。如何在SQL Server 2008中將字節數組作爲文本插入?

我在我的測試項目中使用帶正確sql插入語句的文本文件進行批量加載。我將這個語句應用到一個空表來加載數據。但是我面臨寫入字節數組的問題。

如何編寫用於傳遞字節數組的正確插入語句?將理解SQL Server 2008的字節數組爲十六進制字符串?

加: 我需要一些字符串,我可以應用到SQL Server插入字節數組。 類似的東西:

INSERT INTO T(SomeBlobColumn) VALUES (0x666F6F) 

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

你可以用'INSERT INTO T(SomeBlobColumn)VALUES(0x666F6F) 「如果這就是你問的問題? – 2012-01-13 22:36:19

+0

@MartinSmith,是否意味着0x ...字節數組的正確寫入? – 2012-01-13 22:41:04

+0

這就是您如何在TSQL語句中表示二進制文字。但我不確定這是你想做什麼?您也可以使用['OPENROWSET'](http://stackoverflow.com/a/4376617/73226)從TSQL文件中導入二進制數據或使用bcp實用程序或應用程序代碼... – 2012-01-13 22:44:57

回答

2

你可以試試這個方法(在C#):

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

我假定您是張貼一些C#代碼,但我不知道你是如何知道OP正在嘗試使用它。 – 2012-01-13 22:44:51

+0

好的,一些附加信息:http://msdn.microsoft.com/en-us/library/tyy0sz6b.aspx – 2012-01-13 22:48:51

+0

+1。由於OP使用NHibernate,因爲它已經發布了關於它的問題,所以我認爲編寫一個小的實用程序並不是一個問題。 – npclaudiu 2012-01-13 23:33:09

相關問題