今天,我遇到了一块名为4 m4 p5 ~* ~: ?& K% f; m! ~
Created”的日期时间列,该列允许为空。现在,我想更改它,使其不为NULL,它还包含一个添加默认值的约束(getdate())。9 y4 P4 V. O) c Y8 Q
到目前为止,我已经有了以下脚本,只要我提前清除了所有的空值,脚本就可以正常工作: ; g, j9 F7 b, s, sALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL没有办法ALTER语句也指定默认值?5 Y$ K0 K/ ?3 i+ w
' V- N# ?* _1 [' d Q解决方案: 5 O$ A+ t* B, V, V" C+ v, g 我想你需要用三个单独的句子来执行这个操作。我一直在环顾四周,我看到的一切似乎都建议你 添加 列可以,但如果要更改列,则不能。4 r' p6 `1 ?, s
ALTER TABLE dbo.MyTableADD CONSTRAINT my_Con DEFAULT GETDATE() for createdUPDATE MyTable SET Created = GetDate() where Created IS NULLALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL