Z Eksploratora obiektów w programie SQL Server podczas wybierania i wykonywania skryptów ograniczenia klucza obcego generowany jest następujący kod.
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
Jaki jest cel ostatniego stwierdzenia „ALTER TABLE CHECK CONSTRAINT”? Wydaje się, że nie ma znaczenia, czy jest uruchamiany. Nie zawodzi w przypadku istniejących złych danych ani nie zmienia, że ograniczenie będzie wymuszane dla nowych danych.
Dzięki!