Yas*_*uru 4 sql-server sqldatatypes
我的SQL Server 2012中有一个表如下,
CREATE TABLE TEST (ID INT,NAME VARCHAR(100),STATUS BIT);
Run Code Online (Sandbox Code Playgroud)
我错误地插入了这样的数据
INSERT INTO TEST SELECT 1,'A',2;
Run Code Online (Sandbox Code Playgroud)
当我查询结果时,我发现列"STATUS"存储"1".无论我插入什么值而不是"0",它都存储"1".我觉得如果我将列定义为BIT,那么它不应该允许插入除0和1之外的任何值.
是否有任何跟踪标志限制这种插入?我现在正在使用SQL Server 2012 SP3.
使用位数据类型.
"SQL Server数据库引擎优化了位列的存储.如果表中有8位或更少位列,则列存储为1个字节.如果存在9到16位列,则列存储为2个字节, 等等.
字符串值TRUE和FALSE可以转换为比特值:TRUE被转换为1并FALSE转换为0.
转换为位会将任何非零值提升为1."
| 归档时间: |
|
| 查看次数: |
7826 次 |
| 最近记录: |