He *_*llo 4 sql-server default alter
我有一个包含 100 行的表,并且我正在添加具有默认值的新列,如下所示。
ALTER TABLE AccountDetails
ADD
UpdatedOn DATETIME DEFAULT GETDATE(),
UpdatedBy VARCHAR(50) DEFAULT 'System'
Run Code Online (Sandbox Code Playgroud)
执行此 alter 语句后,新列将添加到表中......这是完美的!但是,这些列的现有行的值将为 NULL。
无论如何,默认情况下它是否会有默认值,而不是为这些列执行单独的更新语句来显式更新默认值?
我自己得到了答案。如果我们在 alter 语句中也添加 NOT NULL 约束,那么在更改表以添加新列时,默认值将应用于新列,并且不会违反非空约束。
ALTER TABLE AccountDetails
ADD
UpdatedOn DATETIME NOT NULL DEFAULT GETDATE(),
UpdatedBy VARCHAR(50) NOT NULL DEFAULT 'System'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6890 次 |
| 最近记录: |