我想将一个zip文件存储为SQL Server表中的一列。当我在notepad ++中打开这个zip时,它在某些地方有空字符。
我可以使用什么数据类型将SQL Server列存储此zip?
我尝试过使用varchar
,nvarchar
,text
,但他们只会存储,直到遇到第一个零字符。
答案 0 :(得分:2)
要使用的数据类型为varbinary(max)
,最多可容纳2 GB的二进制数据。
您尝试过的数据类型仅适用于文本数据 - 不适用于二进制数据。此外:text
,ntext
和image
数据类型已被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/