首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WITH CHECK ADD CONSTRAINT后跟CHECK CONSTRAINT与ADD CONSTRAINT

WITH CHECK ADD CONSTRAINT后跟CHECK CONSTRAINT与ADD CONSTRAINT
EN

Stack Overflow用户
提问于 2009-02-09 21:02:12
回答 8查看 133.9K关注 0票数 155

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

代码语言:javascript
运行
复制
ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD 
CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY([ProductID])
  REFERENCES [Production].[Product] ([ProductID])
GO

紧接着是:

代码语言:javascript
运行
复制
ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT     
[FK_ProductCostHistory_Product_ProductID]
GO

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

代码语言:javascript
运行
复制
ALTER TABLE [Production].[ProductCostHistory] ADD  CONSTRAINT  
[DF_ProductCostHistory_ModifiedDate]  DEFAULT (getdate()) FOR [ModifiedDate]
GO

第一种方法和第二种方法之间有什么区别吗?

EN

Stack Overflow用户

回答已采纳

发布于 2009-02-09 22:21:48

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

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

票数 111
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/529941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档