如何提取varbinary(max)列的值?

时间:2015-06-17 18:37:59

标签: sql sql-server ssms varbinary varbinarymax

我有一个varbinary(max)列,用于将图像存储在SQL数据库中。

我正在开发一个newdb脚本,其中应用程序创建数据库的新实例并填充一些表。我正在处理的其中一个表是初始化该图像列。

为了做到这一点,我使用select语句打印了列的内容,并将内容粘贴到newdb脚本的insert语句中。这似乎最初工作,但图像没有正确加载。

所以我比较了原始数据的DATALENTH()(5469988)和新数据(21839)。看来Microsoft SQL Server管理工作室 - 2014切断了我在某个时刻从原始数据库复制它的原因。我需要能够获得专栏的全部内容。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

不是复制/粘贴,而是右键单击结果并执行“将结果另存为...”,这应该导出完整内容。有趣的是将查询输出设置为文本或文件显然仍然会截断长数据值。

答案 1 :(得分:1)

如果您将限制复制并粘贴到查询结果选项中。大多数列将在一定长度(通常为256个字符)后被剪切。

您可以在顶部栏中选择"将结果保存为..."这将提示您输入数据的对话框。

您也可以使用数据导出向导。

答案 2 :(得分:0)

select cast(convert(varchar(max), VarBinaryMaxColumn, 1) as xml) from Table