添加非空列

hud*_*hud 1 sql-server sql-server-2008-r2 ddl

我有一个现有的表,我在其中添加了一个NgoId数据类型为int. 我想NOT NULL在列中添加 as 。

当我添加这个时,我收到以下错误:

无法修改表。无法将值 NULL 插入列“NgoId”、表“CSR.dbo.Tmp_tbl_post_category”;列不允许空值。插入失败。该语句已终止。

请帮助如何添加 NOT NULL 列。

Mar*_*son 6

由于表中已有数据,因此无法添加NOT NULL字段,因为现有数据已违反NOT NULL约束。

因此,您有 2 个选择:

a) 添加具有DEFAULT值的列...

ALTER TABLE dbo.Tmp_tbl_post_category ADD NgoId INT DEFAULT 1;
Run Code Online (Sandbox Code Playgroud)

...然后运行更新语句以将值更正为实际值

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...
Run Code Online (Sandbox Code Playgroud)