WITH VALUES TSQL

The*_*ies 32 t-sql sql-server default

我一直试图理解这WITH VALUES句话的作用?

我似乎无法找到任何正确解释它的文档.

ALTER TABLE Table1 
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid()
with values
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 40

当您向表中添加具有默认约束的可空列时,所有现有行将获取具有NULL其值的新列.定义的默认值将仅应用于正在插入的新行(如果它们的INSERT语句中没有该列的值).

指定时WITH VALUES,所有现有行将获得定义的默认值而不是NULL

如果要添加到新表的列不可为空且具有默认约束,则该默认值将自动应用于表中的所有现有行(不需要,WITH VALUES因为该列必须具有除以外的值NULL)


zed*_*xus 26

WITH VALUES 将默认值应用于空字段

http://technet.microsoft.com/en-us/library/ms187742.aspx一篇关于它的简短博文.

  • 无论谁在阅读这个答案,请阅读marc_s的答案,因为它提供了更多细节. (6认同)