如何处理指向 SQL 项目中相同 dacpac 的多个链接服务器定义?

问题描述 投票:0回答:0

关于 SQL 项目,让我感到困扰的一件事是,有完全合法的场景可以在数据库服务器上完成,而不能在项目中完成。最新的例子与链接服务器有关。

我有许多数据库参与 Always-On 可用性组,这些数据库已配置为使辅助数据库可用于只读查询。我有指向主节点和辅助节点的链接服务器,因此根据查询的类型,客户端可以使用一个链接服务器或另一个。例如:

  • LINKED_SERVER_NAME 指向主(读/写)节点。
  • LINKED_SERVER_NAME_READ_ONLY 指向辅助(只读)节点。

在源代码管理中表示这个是一个问题。我的 SQL 项目中不能有多个指向同一个 dacpac 文件的数据库引用。当我尝试时,Visual Studio 返回错误“此项目已包含此数据库引用”。所以即使在实际服务器上实现这个配置没有问题,但它不允许我在 Visual Studio 项目中表示配置。

显然,位于可用性组的主节点和辅助节点上的数据库是精确副本,如果在源代码管理中拥有 2 个数据库实例,那就太荒谬了。我想到的最佳解决方案是在目标数据库的 SQL 项目上有一个构建后脚本,该脚本将制作 dacpac 的副本,并且只读链接服务器定义可以指向该文件。但这仍然有点 hack-ey,更不用说修改每个数据库项目以生成两个输出文件会很痛苦。

有更好的方法吗?

sql-server visual-studio sql-server-data-tools linked-server availability-group
© www.soinside.com 2019 - 2024. All rights reserved.