2011-01-28 73 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) 

只是不问为什么我没有直接测试这个...

相关问题