我在数据库表中有一个 VARBINARY(MAX) 字段,其中包含约 35k 个字符。该字段是一个转换后的 word 文档,遗憾的是无法再访问。
该字段存在于我的开发数据库中,我希望将此值移植到实时数据库中。但是,如果我纯粹从 SQL 中的网格结果中选择内容,我似乎只能获得约 28k 的可用字符。
所以我的问题是,迁移内容太大而无法简单复制粘贴并插入脚本的字段的最佳方法是什么?
任何想法都非常感谢。
编辑:
作为附加信息,将结果输出到文件(尽管是 .txt)似乎比通过网格给我的字符更少。如果我将查询结果导出到运行查询到网格的文件后,我似乎得到了当时查询窗口中内容的文字表示(所以如果我拉伸(stretch)窗口,我会得到比压缩列宽更多的字符)
最佳答案
要从 SSMS 查询结果 Pane 中可靠地复制大字符串,您需要密切注意以下设置(我现在正在查看 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
您可能至少需要打开一个新的查询窗 Eloquent 能应用设置。请注意,由于 XML 是无限的,您可以潜在地转换为 XML 以获得完整的结果。在这种情况下,您可以执行以下操作:
select cast(convert(varchar(max), MyColumn, 1) as xml) -- Use style 1 to get "0x..."
总而言之,正如其他人所提到的,可能有更好的(和可自动化/可重现的)方法来在您的系统中移动数据:
关于sql-server-2008 - 将大字段 (varbinary(max)) 复制到文件/剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880324/