話說BIT類型欄位之前,先看“詭異”的一幕,執行Update成功,但是查詢出來的結果依然是1,而不是Update的2 當別人問起我來的時候,本人當時也是處於懵逼狀態的,後面聯想具體的業務突然想起來這個欄位是bit類型的 如果把這個現象跟BIT類型欄位連續起來就不覺得奇怪了。 廢話不多,直接上代碼看結 ...
話說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