我在数据库表中有一个VARBINARY(MAX)字段,其中包含大约35k个字符.这个字段是一个转换的单词文档,不幸的是不再有访问权限.
此字段存在于我的数据库中,我正在将该值移植到实时数据库.但是,如果我纯粹选择了网格中的内容,sql中似乎只能获得〜28k的可用字符.
所以我的问题是,迁移一个内容太大的字段的最佳方法是简单的复制和粘贴到插入脚本中?
任何想法都非常感谢
编辑:
作为附加信息,将结果输出到文件(尽管.txt)似乎给我的字符少于通过网格.如果我将查询结果导出到文件,将查询运行到网格,我似乎得到了当时在查询窗口中的字面表示(所以如果我拉伸窗口,我会得到比我压缩列宽更多的字符)
解决方法
要从SSMS查询结果窗格中可靠地复制大型字符串,您需要密切注意以下设置(我正在查看SSMS 10.50.2500.0):
Tools > Options > Query Results > sql Server > Results to Grid Max chars retreived: Non-XML: 65535 XML: Unlimited Tools > Options > Query Results > sql Server > Results to Text Max chars displayed: 8192
您可能需要至少打开一个新的查询窗口才能应用设置.请注意,由于XML是无限制的,您可以将其转换为XML以获得完整的结果.在这种情况下,您可以执行以下操作:
select cast(convert(varchar(max),MyColumn,1) as xml) -- Use style 1 to get "0x..."
所有这些说,可能有更好的(和可自动化/可重复)的方法来移动数据在您的系统上,如其他人所提到的:
>设置一个linked server来简单地运行一个insert语句
>使用openrowset查询远程服务器> SSMS:导出数据,生成脚本,结果到文件> SSIS>第三方工具(Redgate Data Compare等)