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

问题描述 投票:0回答:1

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

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9DdTk0NS5wbmcifQ==” alt =“设置默认值”>

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9MZnlzTi5wbmcifQ==” alt =“已尝试查询”>

sql sql-server database ssms ssms-2017
1个回答
0
投票

如果添加的新列为not null,则默认约束将自动使用现有行的默认值填充该列。

如果添加的新列为[[nullable,则DDL语句应具有WITH VALUES选项以强制设置现有行的默认值。

ALTER TABLE dbo.tab ADD Col int NULL DEFAULT 10 WITH VALUES ;
© www.soinside.com 2019 - 2024. All rights reserved.