gpt4 book ai didi

sql - 使用 CHECK ADD CONSTRAINT 后接 CHECK CONSTRAINT 与 ADD CONSTRAINT

转载 作者:行者123 更新时间:2023-12-01 16:44:05 26 4
gpt4 key购买 nike

我正在查看 SQL Server 2008 的 AdventureWorks 示例数据库,我在他们的创建脚本中看到他们倾向于使用以下内容:

ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD 
CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY([ProductID])
REFERENCES [Production].[Product] ([ProductID])
GO

紧接着是:

ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT     
[FK_ProductCostHistory_Product_ProductID]
GO

我在外键(如此处)、唯一约束和常规 CHECK 约束中看到了这一点; DEFAULT 约束使用我更熟悉的常规范式,例如:

ALTER TABLE [Production].[ProductCostHistory] ADD  CONSTRAINT  
[DF_ProductCostHistory_ModifiedDate] DEFAULT (getdate()) FOR [ModifiedDate]
GO

第一种方式与第二种方式之间有什么区别(如果有的话)?

最佳答案

第一个语法是多余的 - WITH CHECK 是新约束的默认值,并且默认情况下也会打开该约束。

此语法是由 SQL 管理工作室在生成 SQL 脚本时生成的 - 我假设它是某种额外的冗余,可能是为了确保即使表的默认约束行为发生更改也启用约束。

关于sql - 使用 CHECK ADD CONSTRAINT 后接 CHECK CONSTRAINT 与 ADD CONSTRAINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com