2011-03-18 65 views
0

我有一个损坏的外键约束在我们的数据库之一。SQLServer:如何删除损坏的外键约束

我不能放弃它 - 因为它不存在。它不存在于sys.sysobjects和sys.objects中。 SQLServer管理控制台也没有列出它,

然而,我不能重新创建外键约束,因为它已经存在于模式中(错误:具有相同标识符的对象已经存在)。

我该如何解决这个问题?哪些元数据表对此负责?

+0

查看sysindexes也是。我不确定,但值得一试。 – 2011-03-18 12:43:14

+1

没有任何内容 – Falcon 2011-03-18 13:09:13

+0

如果数据库中绝对没有其他对象具有该名称(我希望此时您一直在基于名称搜索sys.objects),请使用MS打开一张票。 – 2011-03-18 13:31:47

回答

2

我能想到的唯一的事情是,如果它以某种方式进行区分大小写的匹配,并且您传入的名称与服务器存储的大小写不同。试试这个:

select fk.[name] 
from sys.foreign_keys fk 
inner join sys.objects o 
    on fk.[referenced_object_id] = o.[object_id] 
where lower(o.[name]) = lower('your table here')