SQL Server中varbinary(max)中的最大实空间

时间:2011-04-19 22:53:18

标签: sql-server

我在sql表中保存文件(任何类型),使用varbinary(max),我发现这个数据类型的最大使用率是8000,但8000是什么意思?,

在线文档说是8000字节,这意味着要保存的文件的最大大小是8000/1024 = 7.8125 KB?,

我开始测试,我可以存储的最大文件大小为29.9 MB,如果我选择一个更大的文件,则获得Sqlexception“字符串或二进制数据将被截断。语句已被终止。” ......

非常感谢任何评论。

4 个答案:

答案 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时,我得到“字符串或二进制数据将被截断”错误。增加数据库的自动增长大小解决了这个问题。我花了一段时间才弄明白,所以我想分享:)