Dari Object Explorer di SQL Server, ketika memilih dan membuat skrip batasan kunci asing, kode berikut dihasilkan.
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
Apa tujuan dari pernyataan terakhir "ALTER TABLE CHECK CONSTRAINT"? Tampaknya tidak masalah apakah dijalankan atau tidak. Itu tidak gagal pada data buruk yang ada, juga tidak mengubah bahwa kendala akan ditegakkan pada data baru.
Terima kasih!
sumber
Pernyataan pertama Anda membuat batasan yang dinonaktifkan. Itu harus diaktifkan dan mungkin dipercaya. Sintaks aneh berikut akan memastikan kendala Anda diaktifkan dan dipercaya:
Ada posting blog yang sangat bagus dari Hugo Kornelis yang menjelaskannya dengan sangat baik: Dapatkah Anda memercayai kendala Anda
sumber