我有一個數據庫經過幾年來從幾個不同的編碼器輸入的一些主要轉換。某些表通過引用列包含對其他數據的引用,但沒有外鍵約束。這意味着有些表可能包含死鏈接。將外鍵約束添加到現有列
我想添加外鍵約束到所有的參考列。如何確保在某些數據可能引用死鏈接時其他鏈接可能爲空,而其他鏈接可能爲空。
我想我需要說這樣的事情:
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
請讓我知道,如果這是正確的,也是否有任何隱藏的陷阱?
在此先感謝
哈哈!謝謝!我會。 (你評論最後的elipses嚇倒我)。所以如果沒有問題就沒問題,但如果有問題我該怎麼辦?這是否意味着沒有辦法添加外鍵約束? – hofnarwillie 2012-04-13 12:34:32
好的謝謝你的意見。希望沒有太多問題,因爲有29000個用戶,我需要將外鍵約束添加到大約40個表格中! – hofnarwillie 2012-04-13 12:38:38