是否可以添加我指定为NOT NULL的列,我不想指定DEFAULT值,但是MS-SQL 2005说:
ALTER TABLE仅允许添加可以包含空值或指定DEFAULT定义的列,或者要添加的列是Identity或timestamp列,或者如果不满足任何先前条件,则该表必须为空才能允许添加本专栏的内容。无法将列“ test”添加到非空表“ shiplist”中,因为它不满足这些条件。
如果是,请让我知道语法,如果否,请说明原因。
不,你不能。
因为如果可以的话,SQL将不知道在现有记录中将什么作为值。如果表中没有任何记录,它将毫无问题地工作。
最简单的方法是使用默认值创建列,然后删除默认值。
ALTER TABLE dbo.MyTable ADD MyColumn text NOT NULL CONSTRAINT DF_MyTable_MyColumn DEFAULT 'defaultValue' ALTER TABLE dbo.MyTable DROP CONSTRAINT DF_MyTable_MyColumn
另一种选择是添加没有约束的列,填充所有单元格的值并添加约束。