2014-04-15 161 views
0

我遇到某人丟棄表的情況,但外鍵仍留在sys.foreign_keys中。有沒有辦法刪除不再有表的外鍵,或者我應該嘗試從sys.foreign_keys中刪除行嗎?從表格丟棄的外鍵丟失

回答

0

修改系統表是壞主意。 不要那樣做。事實上,SQL Server不會允許你輕鬆完成。

你應該首先嚐試用以下命令:

DBCC CHECKDB 
DBCC CHECKCATALOG 
DBCC CHECKCONSTRAINTS (constraint_name) 

(如果省略數據庫名稱,則使用當前數據庫)。 如果確實沒有表的外鍵,dbcc應該檢測到它。從dbcc輸出中讀取結果並注意錯誤消息。

此外,嘗試:

SELECT 
    name, 
    is_disabled, 
    is_not_trusted 
FROM sys.foreign_keys 
WHERE is_disabled = 1 
    OR is_not_trusted = 1 

,看看您是否可以從SQL Server的更多信息。