2014-04-15 126 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的更多信息。