Sql-Server

添加非空列

  • January 2, 2015

我有一個現有表,我在其中添加一列,NgoId其數據類型為int. 我想添加NOT NULL到該列。

當我添加這個時,我收到以下錯誤:

無法修改表。無法將值 NULL 插入列“NgoId”、表“CSR.dbo.Tmp_tbl_post_category”;列不允許空值。插入失敗。該語句已終止。

請幫助如何添加 NOT NULL 列。

由於表中已有數據,因此無法添加NOT NULL欄位,因為現有數據已違反NOT NULL約束。

因此,您有 2 個選擇:

a)添加具有DEFAULT值的列…

ALTER TABLE dbo.Tmp_tbl_post_category ADD NgoId INT DEFAULT 1;

…然後執行更新語句以將值更正為實際應有的值

b)從表中截斷數據,添加列,然後重新填充表…

TRUNCATE TABLE dbo.Tmp_tbl_post_category;

ALTER TABLE dbo.Tmp_tbl_post_category ADD NgoId INT;

INSERT INTO dbo.Tmp_tbl_post_category...

引用自:https://dba.stackexchange.com/questions/87426