带值 SQL

Posted

技术标签:

【中文标题】带值 SQL【英文标题】:WITH VALUES TSQL 【发布时间】:2013-09-08 06:08:07 【问题描述】:

我一直试图了解WITH VALUES 语句的作用?

我似乎找不到任何可以正确解释它的文档。

ALTER TABLE Table1 
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid()
with values

【问题讨论】:

【参考方案1】:

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

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

如果您要添加到新表中的列是不可为空 并且具有默认约束,则该默认值会自动应用于表中的所有现有行(不需要 @ 987654325@,因为该列的值必须不是NULL)

【讨论】:

【参考方案2】:

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

http://technet.microsoft.com/en-us/library/ms187742.aspx 和 short blog post 关于它。

【讨论】:

阅读此答案的人也请阅读 marc_s 的答案,因为它提供了更多详细信息。【参考方案3】:

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

【讨论】:

以上是关于带值 SQL的主要内容,如果未能解决你的问题,请参考以下文章

带值的 Angular 属性组件

带值的 Angular 属性组件

带值的 TextInput 不会改变值

创建带值枚举

python 2列表到字典(一个列表带键,另一个带值)

关于页面跳转带值问题