0
我有一个损坏的外键约束在我们的数据库之一。SQLServer:如何删除损坏的外键约束
我不能放弃它 - 因为它不存在。它不存在于sys.sysobjects和sys.objects中。 SQLServer管理控制台也没有列出它,
然而,我不能重新创建外键约束,因为它已经存在于模式中(错误:具有相同标识符的对象已经存在)。
我该如何解决这个问题?哪些元数据表对此负责?
我有一个损坏的外键约束在我们的数据库之一。SQLServer:如何删除损坏的外键约束
我不能放弃它 - 因为它不存在。它不存在于sys.sysobjects和sys.objects中。 SQLServer管理控制台也没有列出它,
然而,我不能重新创建外键约束,因为它已经存在于模式中(错误:具有相同标识符的对象已经存在)。
我该如何解决这个问题?哪些元数据表对此负责?
我能想到的唯一的事情是,如果它以某种方式进行区分大小写的匹配,并且您传入的名称与服务器存储的大小写不同。试试这个:
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')
查看sysindexes也是。我不确定,但值得一试。 – 2011-03-18 12:43:14
没有任何内容 – Falcon 2011-03-18 13:09:13
如果数据库中绝对没有其他对象具有该名称(我希望此时您一直在基于名称搜索sys.objects),请使用MS打开一张票。 – 2011-03-18 13:31:47