SQL Server中为NULL时的位数据类型大小

asm*_*mgx 2 sql-server bit sqldatatypes

SQL Server中的位数据类型是最小的数据类型,它只是一个值为0或1的位.

如果字段已更新为0值,则在硬盘中的该字段中将存储0,如果字段更新为1则将存储在硬盘中.

当它为NULL时它会存储什么?

小智 6

列的空状态与数据分开存储 - 每个数据行都有一个名为NULL BITMAP的部分,该部分对表中的每一列都有一位(无论它是否可为空)保持null/not null状态专栏.所以一个位列实际上需要两位 - 一个用于空状态,一个用于数据.

仅供参考,SQL服务器中的数据空间是可变的 - 它取决于您拥有多少位列.它可以在一个字节中存储多达8位的列,因此如果您只有一个位列,则仍然使用该行的整个字节(忽略其他7位).