首页 > 解决方案 > 使用 Azure 特定功能时在本地运行 SQL Server 数据库?

问题描述

我正在考虑将使用本地 SQL Server 的项目迁移到 SQL Azure。数据库具有跨数据库依赖关系,其中一些视图引用同一服务器上的另一个数据库,SQL Azure 不支持这种情况。

我已成功修改这些以使用外部表,这些表使用使用以下内容创建的外部数据源:

CREATE EXTERNAL DATA SOURCE [MyExternalDataSource] WITH
(
    TYPE = RDBMS,
    LOCATION = 'SqlServerName',
    DATABASE_NAME = 'SqlServerDatabaseName',
    CREDENTIAL = cred
);

但是,此类数据源使用的 RDBMS 类型似乎仅受 SQL Azure 支持,本地 SQL Server 不支持。针对前者运行此脚本可以正常工作,而后者会导致引发以下错误:

'RDBMS' 附近的语法不正确

因此,这意味着解决方案中的数据库项目不能同时用于 Azure SQL 和本地 SQL Server 安装。

作为一种解决方法,我正在考虑以下选项,尽管每个选项都有其缺点:

  1. 解决方案中有多个数据库项目,一个针对 SQL Azure,另一个针对 SQL Server——尽管这意味着将任何数据库更新复制到两个项目。

  2. 从使用外部表转而使用 Azure 提供的数据同步功能,并在两个数据库中复制表和数据(无需使用导致问题的外部数据源)——尽管这至少有 5 分钟的延迟(可能在这种特定情况下是可以接受的,但肯定不是每个人都可以接受)

其他开发人员如何处理这种需要在您的项目中使用 SQL Azure 特定功能但您还需要能够运行数据库的本地副本以进行开发的场景?

标签: sql-serverazureazure-sql-databaseazure-sql-server

解决方案


您可以尝试创建 3 个项目:
1. 项目仅包含定义为视图的 Azure 特定引用。
2. 项目仅包含定义为视图的 SQL Server 特定引用。视图的结构应该相同。
3. 你的主要项目。在这个项目中,您将引用以前的一个作为“复合项目”参考。
https://docs.microsoft.com/en-us/sql/ssdt/add-database-reference-dialog-box?view=sql-server-2017


推荐阅读