为什么 Management Studio 为外键约束添加第二个更改表“CHECK CONSTRAINT”

eng*_*man 4 foreign-key sql-server sql-server-2008-r2

ALTER TABLE [dbo].[REMINDER_EMAIL]  WITH CHECK ADD  CONSTRAINT 
  [FK__REMINDER_EMAIL__FACILITY_ID] FOREIGN KEY ( [FACILITY_ID] )
  REFERENCES [dbo].[FACILITY] ( [FACILITY_ID] )

ALTER TABLE [dbo].[REMINDER_EMAIL] CHECK CONSTRAINT [FK__REMINDER_EMAIL__FACILITY_ID]
Run Code Online (Sandbox Code Playgroud)

Tho*_*ger 5

使用外键和检查约束,指定CHECKNOCHECK启用或禁用它。 它只是由 GUI 生成的显式 DDL,在您的情况下,启用外键约束:

{ 检查 | NOCHECK } CONSTRAINT
指定启用或禁用constraint_name。此选项只能与 FOREIGN KEY 和 CHECK 约束一起使用。指定 NOCHECK 时,将禁用约束,并且不会根据约束条件验证将来对该列的插入或更新。DEFAULT、PRIMARY KEY 和 UNIQUE 约束不能被禁用。

参考:BOL ALTER TABLE

这是多余的和不必要的,但我只是把它当作“冗长”。如果我要有力地捍卫它,我会说它让脚本阅读器没有任何功能问题。