未为旧记录设置默认值的新列

use*_*377 0 sql sql-server ddl

我创建了一个新列 S_TEST 并将其默认值设置为 2 并保存表,但不幸的是旧记录没有自动设置,而是它们具有 NULL 值。看我的截图。

设置默认值

试图查询

小智 5

如果您添加一个非空的新列,则默认约束将自动使用现有行的默认值填充该列。

如果添加一个可以为的新列,DDL 语句应该可以WITH VALUES选择强制为现有行设置默认值。

ALTER TABLE dbo.tab ADD Col int NULL DEFAULT 10 WITH VALUES ;
Run Code Online (Sandbox Code Playgroud)