SQLServer: как удалить поврежденное ограничение внешнего ключа - PullRequest
0 голосов
/ 18 марта 2011

У меня повреждено ограничение внешнего ключа в одной из наших баз данных.

Я не могу бросить это - потому что это не существует. Он не существует в sys.sysobjects и sys.objects. Консоль управления SQLServer также не отображает ее,

Тем не менее, я не могу воссоздать ограничение внешнего ключа, потому что оно уже существует в схеме (ошибка: объект с таким же идентификатором уже существует).

Как я могу это исправить? Какие таблицы метаданных отвечают за это?

1 Ответ

2 голосов
/ 18 марта 2011

Единственное, о чем я могу подумать, это если он каким-то образом сопоставляет регистр и вы передаете имя с регистром, отличным от того, что хранится на сервере. Попробуйте это:

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')
...