【问题标题】:How to deploy a database to a windows azure sql database?如何将数据库部署到 Windows azure sql 数据库?
【发布时间】:2017-02-02 17:48:01
【问题描述】:

我有一个位于本地 sql 服务器上的数据库。我进入管理工作室,然后选择要在 Azure 上部署的数据库并按照指南进行操作。最终,我得到了一堆错误,例如

在用作数据包一部分的架构中发现了一个或多个不受支持的元素。 错误 SQL71561:验证元素 [dbo].[patientInfo] 时出错:视图:[dbo].[patientInfo] 对对象 [198.18.21.71].[db_cs_dw].[dbo].[invoice] 的引用未解析。从此平台创建包时不支持外部引用。

错误 SQL71562:验证元素 [dbo].[getAllClaimsByPatientId] 时出错:过程:[dbo].[getAllClaimsByPatientId] 对对象 [198.18.21.71].[db_cs_dw].[dbo].[all_clients_view] 的引用未解析。从此平台创建包时不支持外部引用。

我是否需要在我的 Azure sql 服务器上使用 [198.18.21.71] 设置链接服务器。我可以这样做吗?

【问题讨论】:

    标签: sql azure azure-sql-database


    【解决方案1】:

    正如其他人所说,您无法在 Azure 中设置链接服务器。您看到的验证失败是因为已检测到 4 部分 [server].[database].[schema].[table] 引用,Azure 不支持这些引用。

    假设您的 [db_cs_dw] 数据库也将托管在 Azure 中,您可以执行 Elastic Query 来执行跨数据库查询。执行此操作需要进行一些设置,包括创建安全上下文、数据源和External Tables 以表示 [invoice] 表或您希望在其他数据库中访问的任何其他数据。您对 [198.18.21.71].[db_cs_dw].[dbo].[invoice] 的旧引用现在将引用外部表。您还可以通过引入 Synonyms 来进一步封装这一点 - 因此同义词引用外部表,而 [dbo].[patientInfo] 视图将引用同义词。

    否则,您需要将数据托管在同一个数据库中,并采用某种 ETL/复制过程来移动/同步数据。

    【讨论】:

      【解决方案2】:

      我是否需要在我的 Azure sql 服务器上使用 [198.18.21.71] 设置链接服务器。我可以这样做吗?

      您无法设置从 Azure 到本地的链接服务器..

      正如错误所说,您需要通过删除视图或修改它们来解决这些冲突

      【讨论】:

      • 如何修改?
      • 您可以删除这些视图
      • 我需要这些视图和存储过程.. 有没有办法修复或绕过它?
      • 不。你不能。但一种方法是将数据从您的视图具体化到本地表并复制它
      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 2019-10-26
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      相关资源
      最近更新 更多