我一直在试图理解WITH VALUES
语句的作用?
我似乎找不到任何正确解释它的文档。
ALTER TABLE Table1
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid()
with values
将具有默认约束的可为 null 的列添加到表时,所有现有行都将获得以 NULL
作为其值的新列。定义的默认值将仅应用于要插入的新行(如果它们的 INSERT
语句中没有该列的值)。
指定 WITH VALUES
时,所有现有行都将获得定义的默认值,而不是NULL
如果要添加到新表中的列不可为空并且具有默认约束,则该默认值将自动应用于表中的所有现有行(无需WITH VALUES
,因为该列必须具有 NULL
以外的值)
WITH VALUES
将默认值应用于空字段
http://technet.microsoft.com/en-us/library/ms187742.aspx 和一篇关于它的简短博客文章。
with VALUES - 指定在 DEFAULT constant_expression 中给出的值存储在添加到现有行的新列中。如果添加的列允许空值并且指定了 WITH VALUES,则默认值将存储在添加到现有行的新列中。如果未为允许空值的列指定 WITH VALUES,则值 NULL 将存储在现有行的新列中。如果新列不允许空值,则无论是否指定了 WITH VALUES ,默认值都将存储在新行中。