我的某个数据库中存在损坏的外键约束。
我不能放弃它 - 因为它不存在。它在sys.sysobjects和sys.objects中不存在。 SQLServer管理控制台也不会列出它,
然而,我无法重新创建外键约束,因为它已经存在于模式中(错误:已经存在具有相同标识符的对象)。
我该如何解决?哪个元数据表对此负责?
答案 0 :(得分: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')