在SQL Server中存储zip

时间:2014-07-21 20:05:42

标签: sql sql-server

我想将一个zip文件存储为SQL Server表中的一列。当我在notepad ++中打开这个zip时,它在某些地方有空字符。

我可以使用什么数据类型将SQL Server列存储此zip?

我尝试过使用varcharnvarchartext,但他们只会存储,直到遇到第一个零字符。

2 个答案:

答案 0 :(得分:2)

要使用的数据类型为varbinary(max),最多可容纳2 GB的二进制数据。

您尝试过的数据类型仅适用于文本数据 - 不适用于二进制数据。此外:textntextimage数据类型已被SQL Server 2005弃用 - 您绝对不应该再使用它们了

PS:还可以看到Hossam的答案 - 如果您使用SQL Server 2008 或更新,您还可以使用{{1 SQL Server的功能,用于将blob的实际数据内容存储在服务器的文件系统中(而不是在数据库内)。这个可以显着提高性能(如果你使用文件I / O流接口),但它需要更多的工作来实现这一点。

答案 1 :(得分:1)

我完全同意@marc_s但是我建议使用FILESTREAM,因为它将利用丰富的流媒体API和性能。

您可以查看以下链接了解更多详情

https://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/

http://msdn.microsoft.com/en-us/library/gg471497.aspx