今天我遇到了一个旧表,其中有一个名为"Created"的datetime列,它允许空值.现在,我想更改它,使其不为NULL,并包含一个用于添加默认值(getdate())的约束.
到目前为止,我已经有了以下脚本,只要我事先清除了所有的空值,它就可以正常工作:
ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL
有没有办法也在ALTER语句中指定默认值?
今天我遇到了一个旧表,其中有一个名为"Created"的datetime列,它允许空值.现在,我想更改它,使其不为NULL,并包含一个用于添加默认值(getdate())的约束.
到目前为止,我已经有了以下脚本,只要我事先清除了所有的空值,它就可以正常工作:
ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL
有没有办法也在ALTER语句中指定默认值?
我认为你需要把这作为三个独立的声明来做.我一直在四处寻找,我看到的一切似乎都表明,如果你是adding个专栏,你可以这样做,但如果你正在修改一个.
ALTER TABLE dbo.MyTable
ADD CONSTRAINT my_Con DEFAULT GETDATE() for created
UPDATE MyTable SET Created = GetDate() where Created IS NULL
ALTER TABLE dbo.MyTable
ALTER COLUMN Created DATETIME NOT NULL