我正在使用varbinary(max)
将文件(任何类型)保存到SQL表中,发现此数据类型的最大用途为8000,但是8000意味着什么?
在线文档说明是8000字节。这是否意味着要保存的文件的最大大小为8000/1024 = 7.8125 KB?
我开始进行测试,可以存储的最大文件大小为29.9 MB。如果选择更大的文件,则会收到SQLException。
字符串或二进制数据被截断。该语句已终止。
我正在使用varbinary(max)
将文件(任何类型)保存到SQL表中,发现此数据类型的最大用途为8000,但是8000意味着什么?
在线文档说明是8000字节。这是否意味着要保存的文件的最大大小为8000/1024 = 7.8125 KB?
我开始进行测试,可以存储的最大文件大小为29.9 MB。如果选择更大的文件,则会收到SQLException。
字符串或二进制数据被截断。该语句已终止。
等SQL Server 2012 (代号Denali)发布后,实施它 - 它拥有FileTable
功能:)
varbinary(8000)
的限制是8000字节 - 这是确定的!varbinary(max)
的限制是2 GBvarbinary(max) FILESTREAM
的限制取决于您的文件系统(FAT32-2 Gb,NTFS-16 exabytes)从这里获取:
http://msdn.microsoft.com/en-us/library/ms188362.aspx:
max表示最大存储大小为2³¹-1个字节
即2 147 483 647字节。我不确定为什么它停止于29.9MB。
在试图使用varbinary(max)存储5MB时,我在SQL Server 2005中遇到了“String or binary data would be truncated”错误。增加数据库的自动增长大小解决了这个问题。花了我一些时间才弄清楚,所以想和大家分享一下 :)
VARBINARY(MAX)
字段的容量是 2 GB(2'147'483'647 字节),而不仅仅是 8000。 - marc_s