向具有值的现有字段添加默认约束

Ste*_*teB 1 t-sql sql-server

我正在尝试使用以下 T-SQL 向 SQL Server 中的现有字段添加默认约束:

更改表额外添加约束 DF_Extra_ExternalRef DEFAULT ('*') 为 ExternalRef 带值

这会添加默认约束,但无法使用空值更新现有记录。

我正在使用 SQL Server 2005。

Aar*_*and 5

我只见过WITH VALUES在添加新列时使用这种方式(这就是记录的全部内容)。如果您要向现有列添加约束,我认为这WITH VALUES是无操作的。所以:

ALTER TABLE dbo.Extra ADD CONSTRAINT DF_Extra_ExternalRef 
  DEFAULT ('*') FOR ExternalRef;

UPDATE dbo.Extra SET ExternalRef = '*' WHERE ExternalRef IS NULL;
Run Code Online (Sandbox Code Playgroud)