2015-06-17 62 views
1

我有一个varbinary(max)列将图像存储在SQL数据库中。如何提取varbinary(max)列的值?

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

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

因此,我比较了原始数据(5469988)和新数据(21839)的DATALENTH()。看来Microsoft SQL Server Management Studio - 2014在某些时候会将原始数据库中的数据复制到数据库中。我需要能够获取列的全部内容。有任何想法吗?

+1

是你的问题“我怎样才能使用SMS复制和粘贴大量数据”,或者你的问题是别的? –

+0

@RickS如果复制和粘贴工作会很好,但它迄今还没有工作,所以看起来我需要一个不同的解决方案。 –

回答

3

不是复制/粘贴,而是右键单击结果并执行'Save Results As ...',并导出完整的内容。有趣的是,将查询输出设置为文本或文件显式将仍然截断长数据值。

+1

我这样做了,尺寸更大:32767.它仍然比原来小得多:5469988. –

+0

如果它仍然不起作用,那么您也可以尝试使用'bcp'命令创建导出的数据文件,然后使用相同的命令创建空表结构后将其导入到目标中。 –

+0

不幸的是,当它被部署时,它将无法访问文件系统 –

1

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

您可以在顶部栏中选择“保存结果为...”,这会提示您一个数据导出对话框。

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

相关问题