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

car*_*los 13 sql-server varbinary

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

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

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

非常感谢任何评论.

小智 41

在它发布时实现SQL Server 2012(代号Denali) - 它具有FileTable功能:)

  • varbinary(8000) 限制为8000字节 - 这是肯定的!
  • varbinary(max) 限制为2千兆字节
  • varbinary(max) FILESTREAM 受文件系统限制(FAT32 - 2 Gb,NTFS - 16艾字节)


Mik*_*ito 10

取自这里:

http://msdn.microsoft.com/en-us/library/ms188362.aspx:

max表示最大存储大小为2³¹-1字节

这是2 147 483 647字节.我不知道为什么它停在29.9MB.


Smu*_*202 5

您正在使用哪个版本的SQL Server?

MSDN for SQL Server 2008上的Varbinary明确表示,当“列数据条目超过 8,000个字节” 时,将使用VarBinary(MAX)。

另外,如果您使用的是服务器,我还将介绍一下SQL Server 2008中的文件流功能。


小智 5

尝试在SQL Server 2005上使用varbinary(max)存储5MB时出现“字符串或二进制数据将被截断”错误。增加数据库的自动增长大小可以解决此问题。花了我一段时间找出答案,所以以为我会分享:)