我在sql表中保存文件(任何类型),使用varbinary(max),我发现这个数据类型的最大使用率是8000,但8000是什么意思?,
在线文档说是8000字节,这意味着要保存的文件的最大大小是8000/1024 = 7.8125 KB?,
我开始测试,我可以存储的最大文件大小为29.9 MB,如果我选择一个更大的文件,则获得Sqlexception“字符串或二进制数据将被截断。语句已被终止。” ......
非常感谢任何评论。
答案 0 :(得分:36)
在SQL Server 2012(代号Denali)发布时实施 - 它具有FileTable
功能:)
varbinary(8000)
受到8000字节的限制 - 这是肯定的!varbinary(max)
受限于2千兆字节varbinary(max) FILESTREAM
受您的文件系统限制(FAT32 - 2 Gb,NTFS - 16艾字节)答案 1 :(得分:10)
从这里采取:
http://msdn.microsoft.com/en-us/library/ms188362.aspx:
max表示最大存储大小为2³¹-1字节
这是2 147 483 647字节。我不知道为什么它停在29.9MB。
答案 2 :(得分:5)
您使用的是哪个版本的SQL Server?
Varbinary on MSDN for SQL Server 2008明确表示VarBinary(MAX)用于“列数据条目 超过 8,000字节。”
此外,如果您使用的是服务器,我还会查看Filestream Capabilities in SQL Server 2008。
答案 3 :(得分:4)
在SQL Server 2005上尝试使用varbinary(max)存储5MB时,我得到“字符串或二进制数据将被截断”错误。增加数据库的自动增长大小解决了这个问题。我花了一段时间才弄明白,所以我想分享:)