灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2638回复:0

[SQL Server]SQL Server中bit数据类型应用

楼主#
更多 发布于:2012-09-04 18:03


在 SQL Server 中,用来处理判断flag的字段,使用bit类型。在使用过程中有几点需要注意的:
1、bit 与 SQL Server 的整型和数字数据相似的数字数据,但 bit 列只能存储 0 和 1。
2、在插入、修改 bit 数据时,使用 0 或 1 ,而不是 false 或 true,bit 字段放在 where 查询条件中也是这样。
3、利用 RecordSet 将 bit 字段中的数据取出来后,它是 boolean 类型,而不是数字类型,即在判断时应该使用 if rs("bitField") then,而不是 if rs("bitField")=1 then。

Transact-SQL文档上说:
-------------------------------------
bit
整型数据 1、0 或 NULL。

注意:
不能对 bit 类型的列使用索引。

Microsoft? SQL Server? 优化用于 bit 列的存储。如果一个表中有不多于 8 个的 bit 列,这些列将作为一个字节存储。

bit值类型可以取值为 1 (true )、0 或 NULL 的整数数据类型。

当你直接打开表向这一列中插入数据是就需要插入true或false  ,即表现值

当你用sql语句插入数据的时候该列就插入0(false)或1(true),0,1即实际值
这里插入非0数据,自动转换为1 ,没有插入时默认null
insert into boy values('lijiash9','beijing',23,9) true
insert into boy values('lijiash00','beijing',23,0) false
insert into boy values('lijiash111','beijing',23,1) true
insert into boy values('lijiash null','beijing',23,null) 出错

当你在查询分析其中用select语句读取这个表中的这一列数据时该列数据显示的是0或1

当你在C#等应用程序中调用sqlserver2005存储过程是返回的结果集中这一列的值是true或false

数据库中存放的是0/1/NULL,自己用SQL转:  
    
  select   case   字段   when   1   then   '是'   when   0   then   '否'   else   '空'   end   from   表





喜欢0 评分0
游客

返回顶部