SQL命令not null使用錯誤與修改數據類型

在做一個數據庫時,通過命令進行表的生成時,對其他列加了 NOT NULL,唯獨對規範標識identity(1,1)的ID列沒有加NOT NULL。

自以爲搞好了,卻在數據輸入時發生了錯誤。最後在網上查找問題原因,原來是NOT NULL沒有加,導致這一問題。

任何列都是默認了可以 NULL的,而我又identity(1,1),必須加上 NOT NULL.。最後還是出了問題

通過看書和嘗試發現,除ID列和主鍵所在列之外其他列都默認NULL之後,問題就消失了。NOT NULL 在輸入上容易出問題,除非必須儘量不要NOT NULL。


寫了上面這點東西之後,現在又遇到了NOT NULL的毛病:我對數據庫中的表建立關係圖,大家都知道一般每一張表都有一個主鍵列,而這個主鍵列通常會NOT NULL,問題出來了,當其他表會用到這張表中的主鍵列(此處爲了敘述的簡便,把這張表的主鍵列表示爲A表的A列,其他表統一爲B表)時,並不一定會在B表中把A列設爲NOT NULL。這樣建立關係圖是,把這兩個表中的A列建立關係開始不會出現問題,當保存時問題就說這個列出現錯誤,導致無法建立關係,唯一的辦法就是改變其中一張表的A列的 NOT NULL屬性。

但是,如果你爲了主鍵列,把B表的A列改爲NOT NULL屬性,關係圖倒是可以建立了。錄入數據卻成了大麻煩,A和B都是新表沒有數據,你在B中存入數據,因爲會因爲A表中的A列是NULL而無法保存,就進入了死態,都在等對方的的A列中的數據變爲NOT NULL。

所以NOT NULL 千萬小心,特別是在使用關係圖時。


修改列的數據類型

alter TABLE 表名 ALTER COLUMN 列名 VARCHAR(40) NULL

這裏很多會出現問題,所以如果你有主鍵或者外鍵依附的話,先要刪除,這樣才能成功,否則會一直失敗下去


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章