1

我在将 SQL 2017 数据库迁移到 Azure 时遇到问题。我使用了 SSMS 任务菜单中的“将数据库部署到 Microsoft Azure SQL 数据库”和“导出数据层应用程序”向导,并获得了相同的结果。

我正在尝试迁移 4 个数据库。其中一个数据库包含表 ItemMaster,其他 3 个具有访问表的视图,因为它们都使用相同的数据。

使用视图访问 ItemMaster 的 3 个数据库也有使用/引用 ItemMaster 视图的其他视图。

当我尝试迁移数据时,它抱怨访问 ItemMaster 视图的视图找不到 ItemMaster 视图?看起来它正在尝试在迁移 ItemMaster 视图之前迁移访问 ItemMaster 视图的视图,并且它甚至在迁移开始之前就停止了迁移?

以下是实际错误:

标题:Microsoft SQL Server 管理工作室

在用作数据包一部分的架构中发现一个或多个不受支持的元素。错误 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]。

4

1 回答 1

0

这是因为Azure SQL db 不支持跨数据库查询。这意味着即使您在 Azure SQL Server 上拥有多个数据库,您也无法引用数据库之外的对象,我们可以在本地 SQl 服务器实例上轻松地做到这一点。

您的问题的最佳解决方案是将 itemMaster 表复制到您计划迁移的每个数据库以删除任何依赖关系。

于 2021-06-07T19:33:10.927 回答