SQL Server中默认约束“带有值”的问题

时间:2018-09-03 08:40:47

标签: sql-server default-constraint

我了解到,在Sql Server中,我们有WITH VALUES用来设置NULL列内的数据,并在默认约束内设置了指定的值。 但是我的查询不是在已经有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。

1 个答案:

答案 0 :(得分:0)

MSDN

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

  

如果在未同时添加相关列的情况下使用此选项,则无效。