話說BIT類型字段之前,先看“詭異”的一幕,執行Update成功,但是查詢出來的結果依然是1,而不是Update的2
當別人問起我來的時候,本人當時也是處於懵逼狀態的,后面聯想具體的業務突然想起來這個字段是bit類型的

如果把這個現象跟BIT類型字段連續起來就不覺得奇怪了。
廢話不多,直接上代碼看結果就好了。
先建一個測試表
CREATE TABLE TestBIT ( Id INT IDENTITY(1,1), BitColumn BIT )
bit類型字段的insert
按照常規來說,bit類型字段只能存0或者1,所以直接inert 0或者1當然是沒有問題的。

因為bit代表的是真假值,在insert時候賦字符串的false或者true也是沒有問題的

當然文本僅僅支持false或者true這兩個字符串,其他都會報錯,從報錯中也會發現,在insert的時候有一個隱式轉換

對於數值型的數據:當執行插入一個非0或者1的數值的時候,也是會插入成功的,但是(非0的值)插入后的值被隱式轉換為1了
插入非0的數值,均被轉換為1,也就是true

bit類型字段的更新操作
執行更新操作也一樣,如果更新的是數值,更新的字符串只能為false或者true


如果更新的是數值,並且這個數值不是0(是整數或者負數),相當於更新bit字段類型為1


