mssql sqlserver 数据类型binary、varbinary、image之间的区别说明


摘要:
下文将讲述sqlserver中数据类型binary varbinary image三者之间的区别,如下所示:
实验环境:sql server 2008 R2



varbinary数据类型

varbinary数据类型,可存储的为一个变长的二进制数据,最大长度不能唱过8000字节。

declare @maomao varbinary(3000)
 ----以上定义代表变量@maomao 最大可存储3000字节,最小可存储0字节(占用0字节) 


binary数据类型

binary数据类型,是一个定长二进制数据类型,最大可存储长度为8000字节。

declare @maomao binary(3000)
 ----以上定义代表变量@maomao 占用空间为3000字节,无论其中所存储数据的多少 


image数据类型

这是一个可变长的二进制数据类型,最大可存储大小为2^-1个字节。


binary、varbinary、image之间的区别分别为以下几点:
1.占用的存储空间不同
varbinary image 是可变的,而binary定义后可变空间不发生变化
2.可接收的最大二进制数据值不同
varbinary binary 可接收的最大字节数为8000
image 为2^-1个字节


注意事项:
以上三种数据类型,在sqlserver中都可存储二进制数据,但是在微软的官方版本中,建议我们存储二进制数据时,使用nvarchar(max)、varchar(max)、varbinary(max)三种数据类型。