Проверка элементов ошибок останавливает миграцию или резервное копирование bacpac

У меня проблема с переносом базы данных SQL 2017 в Azure. Я использовал мастера "Развертывание базы данных в базу данных Microsoft Azure SQL" и "Экспорт приложения уровня данных" из меню задач в SSMS и получил тот же результат.

Я пытаюсь перенести 4 базы данных. Одна из баз данных содержит таблицу ItemMaster, остальные 3 имеют представления для доступа к таблице, поскольку все они используют одни и те же данные.

3 базы данных, которые используют представления для доступа к ItemMaster, также имеют другие представления, которые используют / ссылаются на представление ItemMaster.

Когда я пытаюсь перенести данные, он жалуется, что представления, которые обращаются к представлениям ItemMaster, не могут найти представление ItemMaster? Похоже, что он пытается перенести представления, которые обращаются к представлению ItemMaster, до того, как он перенесет представление ItemMaster и остановит миграцию, прежде чем он даже запустится?

Вот реальные ошибки:

НАЗВАНИЕ: Microsoft SQL Server Management Studio

Один или несколько неподдерживаемых элементов были найдены в схеме, используемой как часть пакета данных. Ошибка SQL71501: Ошибка проверки элемента [dbo].[INVHISTORY2]: представление: [dbo].[INVHISTORY2] содержит неразрешенную ссылку на объект. Либо объект не существует, либо ссылка неоднозначна, поскольку он может ссылаться на любой из следующих объектов: [dbo].[InvoiceHistory].[ItemMasterR], [dbo].[ItemMasterR].[ITEM_NUM] или [dbo].[ItemMasterR].[ItemMasterR].

Ошибка SQL71501: Ошибка проверки элемента [dbo].[INVHISTORY2]: представление: [dbo].[INVHISTORY2] содержит неразрешенную ссылку на объект. Либо объект не существует, либо ссылка неоднозначна, поскольку он может ссылаться на любой из следующих объектов: [dbo].[InvoiceHistory].[ItemMasterO], [dbo].[ItemMasterO].[ITEM_NUM], [dbo].[ItemMasterO].[ItemMasterO] или [dbo].[ItemMasterR].[ItemMasterO].

Ошибка SQL71501: Ошибка проверки элемента [dbo].[INVHISTORY2]: представление: [dbo].[INVHISTORY2] содержит неразрешенную ссылку на объект. Либо объект не существует, либо ссылка неоднозначна, поскольку он может ссылаться на любой из следующих объектов: [dbo].[InvoiceHistory].[ItemMasterR], [dbo].[ItemMasterO].[ItemMasterR], [dbo].[ItemMasterR].[DESCR] или [dbo].[ItemMasterR].[ItemMasterR].

Ошибка SQL71501: Ошибка проверки элемента [dbo].[INVHISTORY2]: представление: [dbo].[INVHISTORY2] содержит неразрешенную ссылку на объект. Либо объект не существует, либо ссылка неоднозначна, поскольку он может ссылаться на любой из следующих объектов: [dbo].[InvoiceHistory].[ItemMasterO], [dbo].[ItemMasterO].[DESCR], [dbo].[ItemMasterO].[ItemMasterO] или [dbo].[ItemMasterR].[ItemMasterO].

1 ответ

Это связано с тем, что перекрестные запросы к базе данных не поддерживаются в базе данных SQL Azure. Это означает, что даже если у вас есть более одной базы данных на сервере SQL Azure, вы не можете ссылаться на объекты вне своей базы данных, что мы могли бы легко сделать на экземплярах локального сервера SQl.

Лучшее возможное решение вашей проблемы - реплицировать таблицу itemMaster в каждую базу данных, которую вы планируете перенести, чтобы удалить любую зависимость.

Другие вопросы по тегам