SQL Server - BIT数据类型问题

时间:2016-02-29 09:01:28

标签: sql-server sqldatatypes

我的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。

1 个答案:

答案 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."

MSDN