sql 服务器中的默认约束 "with values" 有问题

Problem with default constraint "with values" in sql server

我了解到,在 Sql 服务器中,我们有 WITH VALUESNULL 列中设置数据,并在默认约束内指定值。 但是我的查询没有在已经有 NULL 的列中设置值,即使我使用了 WITH VALUES, 如果我错了,请更正查询。 我的查询是

GO
CREATE TABLE [dbo].[DefaultTest]
(
    [id] [int] NULL
) 
GO
INSERT INTO [dbo].[DefaultTest]
SELECT NULL
GO
ALTER TABLE [dbo].[DefaultTest] 
ADD  CONSTRAINT [con_Test]  DEFAULT 1 FOR [id]
WITH VALUES
GO
SELECT * FROM [DefaultTest]
GO
DROP TABLE [DefaultTest]

执行查询后,我注意到该列仍然只包含 NULL 而不是 1。

MSDN

[WITH VALUES] 在添加新列时使用,它应该有一些值。 如果您不通过 [ALTER] 运算符添加新列,则 [WITH VALUES] 选项将被忽略。

If this is used when the related column isn't also being added then it has no effect.