Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server中为空时的位数据类型大小_Sql Server_Bit_Sqldatatypes - Fatal编程技术网

Sql server SQL Server中为空时的位数据类型大小

Sql server SQL Server中为空时的位数据类型大小,sql-server,bit,sqldatatypes,Sql Server,Bit,Sqldatatypes,SQL Server中的位数据类型是最小的数据类型,它只是一个值为0或1的位 如果字段已更新为0值,则硬盘中的该字段点将存储0,如果字段已更新为1,则硬盘中将存储1 当它为空时,它存储什么?列的空状态与数据分开存储-每个数据行都有一个称为空位图的部分,表中的每一列(无论是否为空)都有一个位,用于保存列的空/非空状态。所以一个位列实际上需要两个位——一个表示空状态,一个表示数据 仅供参考,SQL server中占用的数据空间是可变的,这取决于您有多少位列。它在一个字节中最多可以存储八位列,因此如果

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

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


当它为空时,它存储什么?

列的空状态与数据分开存储-每个数据行都有一个称为空位图的部分,表中的每一列(无论是否为空)都有一个位,用于保存列的空/非空状态。所以一个位列实际上需要两个位——一个表示空状态,一个表示数据


仅供参考,SQL server中占用的数据空间是可变的,这取决于您有多少位列。它在一个字节中最多可以存储八位列,因此如果只有一位列,则仍然使用整行字节(忽略其他七位)。

您将重点关注字段值的存储方式。如果该字段可为空,它还必须存储一个位,说明该字段中是否有值。@Tanner我说的是1%的值cases@Tanner是的,有:-)