私は、いくつかの異なるコーダーからの入力を受けて、数年にわたっていくつかの大きな変革を遂げたデータベースを持っています。一部のテーブルには、参照列を介した他のデータへの参照が含まれていますが、外部キー制約はありません。無効なリンクを含む可能性のあるテーブルがいくつかあることを意味します。
すべての参照列に外部キー制約を追加したいと考えています。一部のデータがデッドリンクを参照している可能性があり、他のデータが実際にnullである可能性がある場合、これが成功することを確認するにはどうすればよいですか.
次のように言う必要があると思います。
ALTER TABLE dbo.Users ADD CONSTRAINT FK_Users_Persons FOREIGN KEY
(
Person_ID --In some cases Person_ID will be null
) REFERENCES dbo.People
(
Person_ID
) ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT FOR REPLICATION
GO
ALTER TABLE dbo.Users
NOCHECK CONSTRAINT FK_Users_Persons
GO
COMMIT
これが正確かどうか、また隠れた落とし穴があるかどうか教えてください。
前もって感謝します