在 SQL Server 中的对象资源管理器中,选择外键约束并为其编写脚本时,会生成以下代码。
USE [MyTestDatabase]
GO
ALTER TABLE [dbo].[T2] WITH NOCHECK ADD CONSTRAINT [FK_T2_T1] FOREIGN KEY([T1ID])
REFERENCES [dbo].[T1] ([T1ID])
GO
ALTER TABLE [dbo].[T2] CHECK CONSTRAINT [FK_T2_T1]
GO
Run Code Online (Sandbox Code Playgroud)
最后一条语句“ALTER TABLE CHECK CONSTRAINT”的目的是什么?它是否运行似乎并不重要。它不会在现有的坏数据上失败,也不会改变将在新数据上强制执行的约束。
谢谢!
我有一些自动生成的 T-SQL,这可能是有效的,但我不太明白。
ALTER TABLE [dbo].[MyTable]
WITH CHECK
CHECK CONSTRAINT [My_FORIEGN_KEY];
Run Code Online (Sandbox Code Playgroud)
我知道什么是外键约束,但什么是外键约束CHECK CHECK?