我试过了:
ALTER TABLE MY_TABLE
ADD STAGE INT NOT NULL;但是它给出了这个错误消息:
ALTER TABLE仅允许添加可以包含空值或具有指定
的缺省定义的列
发布于 2010-08-16 20:14:29
您可以选择最初创建Null-able列,然后使用有效的not null值更新表列,最后ALTER column以设置NOT NULL约束:
ALTER TABLE MY_TABLE ADD STAGE INT NULL
GO
UPDATE MY_TABLE SET <a valid not null values for your column>
GO
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL
GO另一种选择是为您的列指定正确的默认值:
ALTER TABLE MY_TABLE ADD STAGE INT NOT NULL DEFAULT '0'更新:请注意,上面的答案包含GO,当您在Microsoft SQL server上运行这段代码时,这是必须的。如果您想在Oracle或MySQL上执行相同的操作,则需要使用分号;,如下所示:
ALTER TABLE MY_TABLE ADD STAGE INT NULL;
UPDATE MY_TABLE SET <a valid not null values for your column>;
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL;发布于 2010-08-16 20:15:45
如果您不允许该列为Null,则需要提供一个默认值来填充现有行。例如:
ALTER TABLE dbo.YourTbl ADD
newcol int NOT NULL CONSTRAINT DF_YourTbl_newcol DEFAULT 0在企业版上,这是自2012年以来的metadata only change
发布于 2010-08-16 20:14:41
该错误消息非常具有描述性,请尝试:
ALTER TABLE MyTable ADD Stage INT NOT NULL DEFAULT '-';https://stackoverflow.com/questions/3492947
复制相似问题