私はいくつかの異なるコーダーからの入力を何年かかけていくつかの大きな変換を経たデータベースを持っています。一部の表には、参照列を介した他のデータへの参照が含まれていますが、外部キーの制約はありません。デッドリンクを含む可能性のあるテーブルがあることを意味します。既存の列に外部キーの制約を追加する
すべての参照列に外部キー制約を追加したいとします。何らかのデータがデッドリンクを参照している可能性があり、他のデータが実際に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
これも正確であれば任意の隠された落とし穴がある場合は私に知らせてください!事前に
おかげ
ハハ!ありがとう!します。 (あなたのコメントの終わりの逃げ場は私を怖がらせる)。問題がなければ問題ありませんが、問題があればどうしますか?これは、外部キー制約を追加する方法がないことを意味しますか? – hofnarwillie
入力していただきありがとうございます。うまくいけば、29000ユーザーがいるのであまりにも多くの問題はないと私は約40テーブルに外部キーの制約を追加する必要があります! – hofnarwillie