我想知道在存储过程中查询多个数据库的最佳方法是什么。我可以在存储过程中硬编码数据库名称 即:
Select *
from [Audit].[dbo].[AuditTable] inner join
[Core].[dbo].[CoreTable]
on ....
但我想将存储过程存储在版本控制系统中,然后将它们迁移到不同的环境中。所以我想知道最好的方法。不同环境的数据库名称不同。
可能的解决方案:
这似乎与以下内容重复: Cross-database queries with different DB names in different environments
答案 0 :(得分:0)
在所有环境中使用相同数据库名称的单独环境似乎是最干净的选项。
但如果这不是一个选项,也许替代变量可能会起作用。用于Visual Studio的SQL Server数据工具以这种方式处理它 - 使用令牌引用引用的数据库,例如[审计]将由[$(审计)]取代。然后,当您发布数据库时,为每个$变量定义一个值,并替换这些值代替标记。
显然,这需要你有一个机制来进行这些替换。