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
最後のステートメント「ALTER TABLE CHECK CONSTRAINT」の目的は何ですか?実行されるかどうかは問題ではないようです。既存の不良データでは失敗せず、新しいデータに制約が適用されることも変わりません。
ありがとう!