复制一个大场(VARBINARY(MAX))文件/文件剪贴板(Copying a large fie

2019-08-16 23:35发布

我在其中包含〜35K字符数据库表中的VARBINARY(MAX)字段。 这个字段是一个转换的Word文档不幸的是没有再访问。

该字段出现在我的开发数据库和我期待端口这个值到实时数据库。 但是,如果我纯粹是选择的内容出SQL电网结果我似乎只有拿到〜可用字符28K。

所以我的问题是这样的,有什么要迁移的具有内容过大而简单的复制并粘贴到一个领域,并插入脚本的最佳方式?

任何想法不胜感激。

编辑:

随着更多的信息,结果输出到文件(尽管到.TXT)似乎给了我不是通过电网更少字符。 如果我将查询结果导出到文件后运行查询网格我似乎得到的查询窗口当时什么文字表示(所以如果我拉伸窗口,我得到更多的字符比我压缩的列宽)

Answer 1:

为了大串可靠地复制出你的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..."

说了这么多,可能会有更好的(和自动化/可重复性)方法如其他人所说的走动您的系统中的数据:

  • 设置一个链接的服务器 ,以简单地运行一个INSERT语句
  • 使用OPENROWSET查询远程服务器
  • SSMS:导出数据,生成脚本,结果到文件
  • SSIS
  • 第三方工具(展鹏数据比较,等等)


Answer 2:

你可以简单地导出(另存为)你的结果为csv。

1)运行在SSMS查询
2)结果是在网格格式显示
3)右键单击网格,并选择结果另存为
4)选择CSV或文本文件的格式
5)将结果保存到文件

这样,将导出所有数据,并从那里你可以选择你想要的所有文字。

注意:使用SSMS 2012完成了这些步骤,但应该是在2008年和其他数据库管理工具相同或相似



Answer 3:

SSMSBoost附加的SSMS我开发的有2个功能,可以帮助你:

  1. 它可以通过“可视化”直接从ResultsGrid保存在细胞的文档。 所以,你可以看到词您的文档直接从SSMS。 链接: http://www.ssmsboost.com/Features/ssms-add-in-results-grid-visualizers-feature

  2. 它可以所有字节复制从小区到剪贴板。 您可以粘贴数据,然后在一些“好”的文本编辑器并将其保存为.DOC。 但是,第一个解决方案是更好的,至于你将直接获得word文档: http://www.ssmsboost.com/Features/ssms-add-in-copy-results-grid-cell-contents-line-with-breaks



Answer 4:

跳过电网
在SSMS查询结果以文件
运行查询

或者,你为什么不使用链接的服务器,可以直接把

我测试并保存到文件时截断。

你可以使用.NET使用DataReader和.GetBinary?



文章来源: Copying a large field (varbinary(max)) to file / clipboard