带有值的TSQL是什么意思?

51

我一直在试图理解 WITH VALUES 语句的作用是什么?但是似乎找不到任何详细的文档来解释它。

ALTER TABLE Table1 
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid()
with values
3个回答

73
当您向表添加一个带有默认约束的可空列时,所有现有行都将获得新列,并将其值设置为NULL。定义的默认值仅适用于插入新行时(如果它们在其INSERT语句中没有该列的值)。
如果指定了WITH VALUES,则所有现有行将获得定义的默认值而不是NULL
如果要添加的列为非空并具有默认约束,则该默认值会自动应用于表中的所有现有行(不需要使用WITH VALUES,因为该列必须具有除NULL以外的值)。

38

11
阅读本回答的人,请同时阅读marc_s的回答,因为它提供了更多细节。 - zedfoxus

0

使用VALUES - 指定DEFAULT constant_expression中给出的值被存储到现有行中新添加的列中。如果新增的列允许空值并且指定了WITH VALUES,则默认值将存储在新列中,添加到现有行中。如果对允许空值的列未指定WITH VALUES,则现有行中的新列中存储NULL值。如果新列不允许空值,则无论是否指定WITH VALUES,都会将默认值存储在新行中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接