我的SQL Server 2012中有一个表,如下所示,
CREATE TABLE TEST (ID INT,NAME VARCHAR(100),STATUS BIT);
我错误地插入了这样的数据,
INSERT INTO TEST SELECT 1,'A',2;
当我查询结果时,我找到了列" STATUS"存储" 1"。无论我插入什么值而不是" 0",它都会存储" 1"。我觉得如果我将列定义为BIT,那么它不应该允许插入除0和1之外的任何值。
是否有任何跟踪标志限制此类插入?我现在正在使用SQL Server 2012 SP3。
答案 0 :(得分:5)
使用位数据类型。
" SQL Server数据库引擎优化了位列的存储。如果表中有8位或更少位列,则列存储为1个字节。如果有9到16位列,则列存储为2个字节,依此类推。
字符串值URIBuilder builder = new URIBuilder()
.setHost("localhost")
.setPort(8080)
.setScheme("http")
.setPath("/remote")
.setParameter("codici", String.join(",",codicilist));
和TRUE
可以转换为位值:FALSE
转换为1,TRUE
转换为0。
转换为位会将任何非零值提升为1."