10

我需要生成一个 SQL 插入脚本来将数据从一个 SQL Server 复制到另一个。因此,使用 .net,我正在读取给定 SQL Server 表的数据并将其写入一个新的文本文件,然后可以执行该文件以便将这些数据插入其他数据库。

其中一列是 VARBINARY(MAX)。
我应该如何以及如何将获得的 byte[] 转换为脚本的文本,以便它仍然可以插入到其他数据库中?

SSMS 将此数据显示为十六进制字符串。这是要使用的格式吗?我可以通过以下方式获得相同的格式

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

但这怎么能再次插入呢?
我试过

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

这会进行插入,但值与源表中的值不同。

4

2 回答 2

17

原来你可以直接插入十六进制字符串,不需要转换任何东西:

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString)

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

于 2011-01-28T10:14:08.890 回答
0

关于 SO 有两个问题可能会有所帮助:

将 varbinary 数据从 SQL Server 获取到 C# 字节数组的最快方法是什么?

如何将 Byte[] 插入 SQL Server VARBINARY 列?

于 2011-01-28T09:41:27.910 回答