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