2011-01-28 74 views
8

我需要生成一個SQL插入腳本來將數據從一個SQL Server複製到另一個SQL Server。 因此.net,我正在讀取給定的SQL Server表的數據,並將其寫入一個新的文本文件,然後可以執行該文本文件,以便將此數據插入其他數據庫。如何使用腳本將VARBINARY腳本從一個數據庫複製到另一個數據庫?

其中一列是VARBINARY(MAX)。
我應該如何將獲得的byte []轉換爲腳本的文本,以便它仍然可以插入到其他數據庫中?

SSMS將此數據顯示爲十六進制字符串。這是使用的格式? 我可以得到以下

BitConverter.ToString(<MyByteArray>).Replace("-", "") 

此相同的格式,但是這可怎麼再次插入?
我試圖

CONVERT(VARBINARY(MAX), "0xMyHexString") 

這確實插入,但該值不相同,在源表。

+0

是否有你不想使用批量複製或SSIS功能的原因? – Tony 2011-01-28 09:22:15

+0

是的,我將包含生成的腳本與運行此腳本的應用程序。應用程序已經存在,一切工作良好,所以我不想改變這一點。它只是還沒有與VARBINARY列一起工作。 – Marc 2011-01-28 09:32:40

回答

13

原來,你可以直接將十六進制字符串,無需轉換任何東西:

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString) 

只是不問爲什麼我沒有直接測試這個...

相關問題