我该使用哪种SQL Server数据类型来存储Byte[]?

53

我希望将一个字节数组存储在我的SQL Server中。你建议使用哪种数据类型或在插入之前进行怎样的操作来进行存储?

我不希望这些byte[]的长度超过1024。

1个回答

72

varbinary(1024) 是你要寻找的内容。

SQL Server 中有三种二进制值存储类型:

binary(n) 用于长度为 n 的固定长度二进制数据。长度可以是 18000
varbinary(n) 用于最大长度为 n 的可变长度二进制数据。最大长度可以是 18000
以上类型将存储在行数据本身中。 varbinary(max) 用于存储大型二进制值(BLOBs)长达2GB。如果它超过8000字节,实际值将存储在单独的位置,而只有一个指针存储在行本身中。这种类型从 SQL Server 2005 开始可用。

在 SQL Server 2005 之前,image 数据类型用于存储 BLOBs。现在已经被弃用,应使用 varbinary(max)。对于 image 的存储位置始终在数据行之外。


在你的最后一句话中,你是指image的行为与超过8k字节的varbinary(max)相同吗? - Pacerier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接