Проблемы с несколькими объектами схемы SQL Server - PullRequest
4 голосов
/ 19 ноября 2010

У меня есть база данных, в которой есть несколько схем и объектов.Я хочу объединить объекты в одну схему.

Я пытался

ALTER SCHEMA dbo TRANSFER <custom_schema>.<table_name>

Я получаю сообщение "объект уже существует".Однако я не вижу его в Management studio, и

SELECT * from dbo.<table_name>

возвращает ошибку "объект не существует".

Похоже, что какая-то запись в системной таблице вышла из строя.Я посмотрел на sysobjects, и он имеет только одну запись для.Приветствуются любые предложения по устранению неполадок / устранению этой проблемы.

Примечание. Я могу создать синоним

CREATE SYNONYM dbo.<table_name> FOR <custom_schema>.<table_name>

, отлично работает

1 Ответ

11 голосов
/ 28 апреля 2011

Согласно этой странице MSDN ваша проблема может быть вызвана повторяющимся именем первичного ключа . т.е. имя первичного ключа вашего table_name конфликтует с именем первичного ключа, уже определенного в некоторой другой таблице в dbo.

Чтобы решить эту проблему, переименуйте первичный ключ для таблицы, которую вы хочу переехать. Используйте имя, которое не появляются в качестве первичного ключа в схема назначения.

...