1
我知道位字段只能存储0或1.我有一个InfoPath表单,我正在继承,当我从表单解析XML并将数据存储在数据库中时,的XML节点具有1或2,并且它存储在一个位字段中。无论字段中有1还是2,位字段只存储1.我的问题是,位字段将0存储为0,但它是否将非零字符存储为1?那么,2是否也被存储为1?存储非零字符的SQL位字段
我知道位字段只能存储0或1.我有一个InfoPath表单,我正在继承,当我从表单解析XML并将数据存储在数据库中时,的XML节点具有1或2,并且它存储在一个位字段中。无论字段中有1还是2,位字段只存储1.我的问题是,位字段将0存储为0,但它是否将非零字符存储为1?那么,2是否也被存储为1?存储非零字符的SQL位字段
是,非0
值插入为1
。
从MSDN:
的SQL Server数据库引擎优化bit列的存储。如果表中有8个或更少的位列,则列存储为1个字节。如果有9到16位的列,则这些列存储为2个字节,依此类推。
真假字符串值可以被转换为比特值:TRUE被转换为1和FALSE转换到0
转换为位促进任何非零值到1。
测试SQL:
Create Table Test (A bit);
Insert Test Values (-1), (0), (1), (2)
Select * From Test
结果:
A
----
1
0
1
1