我正在处理一个项目,其中我们直接从一个数据库通信到另一个数据库。我们有一个主数据库,客户可以在其中更新其网站,然后通过多个SQL脚本将更改从一个数据库推送到另一个数据库。主数据库作为预览站点,允许他们在将更改推送到生产环境之前查看更改。
目前,我们将从库数据库名称直接编码到SQL查询中。
例如:INSERT INTO [slave-database].dbo.TableName
然而,在开发中分支出多组两个数据库时,这是绝对痛苦的。与正在进行的开发相关的任何存储过程都会被更新以指向该特定分支的从库数据库,例如[branch5-slave-database]。
这不是理想的解决方案,因为当推入主干时必须手动调整更改(替换硬编码的数据库名称)。
有更好的方法吗?目前我唯一能看到的解决方案是为每个分支创建一个SQL Server实例,这意味着所有分支的数据库名称始终可以保持相同。但这将是绝对痛苦的,并且会有相当大的开销。是否可以在SQL Server中设置数据库名称的常量?这样我们就可以只更新分支数据库上的单个值。动态SQL是行不通的。