alter表中接近默认值的语法不正确



我想更改SQL Server中现有的列Site_SiteId,使其不为null,默认值为1,但出现语法错误:

ALTER TABLE dbo.ImagingEvents 
ALTER COLUMN Site_SiteId bit NOT NULL DEFAULT 1

default是一个约束,因此您需要将其添加到表:

ALTER TABLE dbo.ImagingEvents ADD DEFAULT 1 FOR Site_SiteId

首先需要ALTER列:

ALTER TABLE dbo.ImagingEvents ALTER COLUMN Site_SiteId bit NOT NULL;

请注意,如果有任何行已经具有值NULL,则需要先UPDATE,然后执行ALTER

然后,就我个人而言,我建议创建一个命名约束,如下所示:

ALTER TABLE dbo.ImagingEvents ADD CONSTRAINT DF_Site_SiteId DEFAULT 1 FOR Site_SiteId;

具有命名约束,而不是自动命名约束,对于可转移代码来说要好得多。

相关内容

最新更新