<分区>
SQL Server中的位数据类型是最小的数据类型,它只是一个值为0或1的位。
如果字段被更新为 0 值,那么在硬盘的那个字段点将存储一个 0,如果字段被更新为 1,那么 1 将被存储在硬盘中。
当它为NULL时,它存储了什么?
<分区>
SQL Server中的位数据类型是最小的数据类型,它只是一个值为0或1的位。
如果字段被更新为 0 值,那么在硬盘的那个字段点将存储一个 0,如果字段被更新为 1,那么 1 将被存储在硬盘中。
当它为NULL时,它存储了什么?
最佳答案
列的空状态与数据分开存储 - 每个数据行都有一个称为 NULL BITMAP 的部分,它为表中的每一列(无论是否可为空)保留一个位,用于保存空/非列的空状态。所以一个位列实际上需要两位 - 一位用于空状态,一位用于数据。
仅供引用,在 SQL Server 中位占用的数据空间是可变的 - 这取决于您有多少位列。它可以在一个字节中存储最多八位列,因此如果您只有一个位列,您仍然为该行使用一个完整的字节(其他七位将被忽略)。
关于sql-server - SQL Server 中为 NULL 时的位数据类型大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52602454/