我可以添加一个列吗?我指定为NOT NULL,我不想指定默认值,但MS-SQL 2005表示:
ALTER TABLE只允许添加可以包含NULL的列,或指定了默认定义的列,或添加的列是标识或时间戳列,或者如果前面的条件都不满足,则表必须为空才能添加此列.无法将列"test"添加到非空表"shiplist",因为它不满足这些条件.
如果是,请告诉我语法,如果不是,请说明原因.
我可以添加一个列吗?我指定为NOT NULL,我不想指定默认值,但MS-SQL 2005表示:
ALTER TABLE只允许添加可以包含NULL的列,或指定了默认定义的列,或添加的列是标识或时间戳列,或者如果前面的条件都不满足,则表必须为空才能添加此列.无法将列"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
另一种 Select 是添加不带约束的列,填充所有单元格的值并添加约束.