Вопрос

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

Я попытался

ALTER SCHEMA dbo TRANSFER <custom_schema>.<table_name>

Я получаю «Объект уже существует сообщение». Тем не менее, я не вижу это в студии управления и

SELECT * from dbo.<table_name>

Возвращает «Объект не существует» ошибка.

Похоже, некоторые системные вход в таблицу отсутствуют. Я посмотрел на SysObjects, и у него есть только одна запись. Любые предложения о том, как беспокоить съемки / исправить эту проблему приветствуется.

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

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

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

Это было полезно?

Решение

В соответствии с Эта MSDN страница Ваша проблема может быть вызвана Дублируйте имя первичного ключа. Отказ То есть основное название основного ключа вашего таблицы_Name с первичным именем ключа, уже определенного в какой-то другой таблице в DBO.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top