我有一些自动生成的 T-SQL,这可能是有效的,但我不太明白。
ALTER TABLE [dbo].[MyTable]
WITH CHECK
CHECK CONSTRAINT [My_FORIEGN_KEY];
我知道外键约束是什么,但它是什么CHECK CHECK
?
我有一些自动生成的 T-SQL,这可能是有效的,但我不太明白。
ALTER TABLE [dbo].[MyTable]
WITH CHECK
CHECK CONSTRAINT [My_FORIEGN_KEY];
我知道外键约束是什么,但它是什么CHECK CHECK
?
MSDN 文档页面关于
ALTER TABLE
解释这些:ALTER TABLE
:修改表的结构(以及一些可能的操作/修改):
CHECK CONSTRAINT ..
: 启用约束NOCHECK CONSTRAINT ..
: 禁用约束在创建/启用/禁用约束时还需要执行其他可选步骤:
WITH CHECK
: 也检查约束WITH NOCHECK
: 不检查约束用他们的话来说:
在dbfiddle中测试:
考虑在这里阅读这篇文章: https ://msdn.microsoft.com/en-us/library/ms190273.aspx
它告诉我们:
另外,请考虑 StackOverflow 上的这个线程: https ://stackoverflow.com/questions/529941/with-check-add-constraint-followed-by-check-constraint-vs-add-constraint