sql server 2005数据库表bit字段问题

sql server 2005数据表字段为bit时,在数据表中只能输入reue,false和NULL,而不能输入1和0,这是为什么?
打错了reue应改为true

这是SSMS(SQL Server Management Studio)对数据类型校验引起的,在SSMS里边编辑表中记录时,SSMS先要校验一下输入是否有误,bit类型对应.net中的boolean类型,而boolean类型有效值是true、false、null,直接输入0、1肯定通不过校验的。而如果执行语句INSERT的话,不需要经过SSMS的数据类型校验,SQL Server会将0、1隐式转换为false和true,执行INSERT语句是能正常插入记录的,用INSERT语句向bit类型列插入数据的时候,大于0的值都会被隐式转换为true。而实际内部存储bit类型列,只用1个bit来存储,也就是1个字节可以存储8个bit列。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-30
我估计这个是 客户端那里, 自动作了转换.
也就是你输入 true, 那么存储到数据库里面的是 1
如果你输入 false ,那么存储到数据库里面的是 0
输入 null, 那么自然就是 null 了。

下面是一个例子,创建了一个临时表, 只有一列 数据类型为 bit
插入数据的时候,是要输入 数字的。

E:\>sqlcmd -S "localhost\SQLEXPRESS"
1> use test
2> go
已将数据库上下文更改为 'Test'。
1> create table #tmp( id bit );
2> go
1> insert into #tmp VALUES ( 1 );
2> go

(1 行受影响)
1> insert into #tmp VALUES ( true );
2> go
消息 207,级别 16,状态 1,服务器 WANG\SQLEXPRESS,第 1 行
列名 'true' 无效。
第2个回答  2011-05-30
bit是就是0和1嘛
用程序插入都是插0和1的
true和false是用企业管理器弄的吧
第3个回答  2011-05-30
可以在后台自动为SQL数据库增加表和表中的字段~昨天刚回答这样的问题:本回答被提问者采纳
相似回答