【问题标题】:How to script VARBINARY to copy it from one DB to another using a script?如何编写 VARBINARY 脚本以使用脚本将其从一个数据库复制到另一个数据库?
【发布时间】:2011-01-28 09:20:09
【问题描述】:

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

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

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

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

但是如何再次插入呢?
我试过了

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

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

【问题讨论】:

  • 您是否有不想使用批量复制或 SSIS 功能的原因?
  • 是的,我将生成的脚本包含在一个只运行此脚本的应用程序中。该应用程序已经存在并且到目前为止一切正常,所以我不想更改它。它只是还不适用于 VARBINARY 列。

标签: sql-server tsql insert ado.net varbinary


【解决方案1】:

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

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString)

别问我为什么不直接测试这个...

【讨论】:

  • 你为什么不直接测试这个?
  • 有史以来最好的答案。我完全把这个复杂化了。 :)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多