我喜歡外鍵,但我遇到了一個問題。我有一個轉換程序,我禁用外鍵到表。我這樣做的原因是,我可以重新轉換主表中的所有記錄,但保留其他表不依賴於那個表,而不必每次重新轉換它們,因爲它們很大。使用外鍵檢查現有數據
我使用這些命令禁用和重新啓用外鍵:
ALTER TABLE MyTable的NOCHECK約束MyConstraint
ALTER TABLE MyTable的CHECK約束MyConstraint
不過,我以後重新啓用約束「檢查現有數據創建或重新啓用」仍然設置爲否。我知道它被設置爲否,因爲我禁用了約束,但通過這樣做它改變了我的數據庫架構,我不喜歡。我認爲這將被視爲重新啓用約束並檢查現有數據,但顯然不是。
有沒有辦法改變這與ALTER TABLE命令?我知道我可以,如果我放棄約束並重新創建它,但我不會編寫腳本來重新創建我擁有的每個外鍵,並保持這一點。
我正在使用SQL Server 2008 R2。
謝謝,你是一個救生員。 –
爲了記錄,因爲我有一段時間在其他地方找到它:「sys.foreign_keys.is_not_trusted」對應於SQL Server Management Studio「外鍵關係」對話框中的「在創建或重新啓用時檢查現有數據」。 – leqid