Da Esplora oggetti in SQL Server, durante la selezione e lo scripting di un vincolo di chiave esterna, viene generato il seguente codice.
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
Qual è lo scopo dell'ultima frase "ALTER TABLE CHECK CONSTRAINT"? Non sembra importare se viene eseguito o meno. Non fallisce sui dati errati esistenti, né cambia il fatto che il vincolo verrà applicato ai nuovi dati.
Grazie!