Aus dem Objekt-Explorer in SQL Server wird beim Auswählen und Skripten einer Fremdschlüsseleinschränkung der folgende Code generiert.
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
Was ist der Zweck der letzten Anweisung "ALTER TABLE CHECK CONSTRAINT"? Es scheint egal zu sein, ob es ausgeführt wird oder nicht. Es schlägt weder bei vorhandenen fehlerhaften Daten fehl, noch ändert es etwas daran, dass die Einschränkung für neue Daten erzwungen wird.
Vielen Dank!