您能告诉我们如何更改表格以便它可以接受非空约束
alter table customer add emp_id int not null foreign key references emp(emp_id)
我上面已经尝试过,但它显示错误:
Msg 4901,Level 16,State 1,Line 1
ALTER TABLE only allows columns to be added that can contain nulls, or have a DEFAULT definition specified, or the column being added is an identity or timestamp column,
or alternatively if none of the previous conditions are satisfied the table must be
empty to allow addition of this column. Column 'emp_id1' cannot be added to non-empty table 'customer' because it does not satisfy these conditions.
答案 0 :(得分:1)
错误很清楚。
您正在尝试将非空列添加到包含数据的表中。添加列时,它没有值。因此,默认值将放入现有行的表中。没有默认值,因此使用了NULL
。
您可以通过几种方式解决此问题。一种方法是清空表truncate table customer
,添加新列,然后再次加载数据。
另一种方法是添加允许NULL
的列。然后在任何地方填写值,然后添加NOT NULL
约束。