Microsoft SQL Server支持七种不同类别的数据。 其中, 二进制字符串允许编码的数据表示为二进制对象。
二进制字符串类别中的数据类型包括:
- 位变量存储一个值为0,1或NULL的单个位。
- 二进制(n)变量存储n个字节的固定大小的二进制数据。 这些字段最多可以存储8,000个字节。
- varbinary(n)变量存储大约n个字节的可变长度二进制数据。 它们可以存储最多8,000字节。
- varbinary(max)变量存储大约n个字节的可变长度二进制数据。 它们最多可以存储2 GB,实际存储数据的长度以及另外两个字节。
- 图像变量可存储高达2 GB的数据,通常用于存储任何类型的数据文件(而不仅仅是图像)。
计划在SQL Server的未来版本中弃用图像类型。 Microsoft工程师建议使用varbinary(max)而不是图像类型进行未来开发。
适当的用途
当你需要存储零或者一个表示的是或者否的数据时使用位列 。 当列的大小相对一致时使用二进制列。 预计列大小超过8K时可能会使用varbinary列,或者每个记录的大小可能会有明显的变化。
转换
T-SQL - Microsoft SQL Server中使用的SQL变体 - 当您从任何字符串类型转换为二进制或varbinary类型时,可以填充数据。 任何其他类型转换为二进制类型都会产生左键盘。 这个填充是通过使用十六进制零来实现的。
由于这种转换和截断的风险,如果转换后的字段不够大,转换的字段可能会导致算术错误而不会引发错误消息。