如何将数据库部署到windows azure sql数据库?

时间:2017-02-02 17:48:02

标签: sql azure azure-sql-database

我有一个位于本地sql server上的数据库。我去管理工作室,然后选择我想在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]。从此平台创建包时不支持外部引用。

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

2 个答案:

答案 0 :(得分:1)

  

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

您无法将Azure中的链接服务器设置为onpremises ..

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

答案 1 :(得分:0)

正如其他人所说,您无法在Azure中设置链接服务器。您看到的验证失败是因为已经检测到4部分[服务器]。[数据库]。[架构]。[表]引用,但Azure中不支持这些引用。

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

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