我正在使用 a 将文件(任何类型)保存在 SQL 表中varbinary(max)
,我发现此数据类型的最大使用量是 8000,但是 8000 是什么意思?
在线文档说是 8000 字节。这是否意味着要保存的文件的最大大小为 8000/1024 = 7.8125 KB?
我开始测试,我可以存储的最大文件是 29.9 MB。如果我选择一个更大的文件,就会得到一个 SQLException。
字符串或二进制数据将被截断。该语句已终止。
我正在使用 a 将文件(任何类型)保存在 SQL 表中varbinary(max)
,我发现此数据类型的最大使用量是 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 EB)取自这里:
http://msdn.microsoft.com/en-us/library/ms188362.aspx:
max 表示最大存储大小为 2³¹-1 个字节
这是 2 147 483 647 字节。我不确定为什么它会停在 29.9MB。
您使用的是什么版本的 SQL Server?
MSDN for SQL Server 2008 上的 Varbinary明确表示 VarBinary(MAX) 用于“列数据条目超过8,000 字节”时使用。
此外,如果那是您正在使用的服务器,我还将查看SQL Server 2008中的文件流功能。
尝试在 SQL Server 2005 上使用 varbinary(max) 存储 5MB 时出现“字符串或二进制数据将被截断”错误。增加数据库的自动增长大小解决了该问题。我花了一段时间才弄清楚,所以只是想我会分享:)