在 SQL Server 中,用來處理判斷flag的字段,使用bit類型。在使用過程中有幾點需要注意的:
1、bit 與 SQL Server 的整型和數(shù)字數(shù)據(jù)相似的數(shù)字數(shù)據(jù),但 bit 列只能存儲 0 和 1。
2、在插入、修改 bit 數(shù)據(jù)時,使用 0 或 1 ,而不是 false 或 true,bit 字段放在 where 查詢條件中也是這樣。
3、利用 RecordSet 將 bit 字段中的數(shù)據(jù)取出來后,它是 boolean 類型,而不是數(shù)字類型,即在判斷時應該使用 if rs("bitField") then,而不是 if rs("bitField")=1 then。
Transact-SQL文檔上說:
-------------------------------------
bit
整型數(shù)據(jù) 1、0 或 NULL。
注意:
不能對 bit 類型的列使用索引。
Microsoft? SQL Server? 優(yōu)化用于 bit 列的存儲。如果一個表中有不多于 8 個的 bit 列,這些列將作為一個字節(jié)存儲。
bit值類型可以取值為 1 (true )、0 或 NULL 的整數(shù)數(shù)據(jù)類型。
當你直接打開表向這一列中插入數(shù)據(jù)是就需要插入true或false ,即表現(xiàn)值
當你用sql語句插入數(shù)據(jù)的時候該列就插入0(false)或1(true),0,1即實際值
這里插入非0數(shù)據(jù),自動轉(zhuǎn)換為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語句讀取這個表中的這一列數(shù)據(jù)時該列數(shù)據(jù)顯示的是0或1
當你在C#等應用程序中調(diào)用sqlserver2005存儲過程是返回的結(jié)果集中這一列的值是true或false
在數(shù)據(jù)庫中存放的是0/1/NULL,自己用SQL轉(zhuǎn):
select case 字段
when 1 then '是'
when 0 then '否'
else '空'
end
from 表
|
|
來自: 悟靜 > 《數(shù)據(jù)庫》