sql - 在不同环境中使用不同数据库名称的跨数据库查询?

标签 sql sql-server database sql-server-2005

您将如何处理不同环境中的跨数据库查询。例如,db1-development 和 db2-development、db1-production 和 db2-production。

如果我想在开发过程中执行从 db2 到 db1 的跨数据库查询,我可以使用完全限定名称 [db1-development].[schema].[table]。但是如何维护不同环境之间的查询和存储过程呢? [db1-development].[schema].[table] 在生产环境中不起作用,因为数据库名称不同。

我认为搜索和替换是一种可能的解决方案,但我希望有更优雅的方法来解决这个问题。如果有特定于数据库的解决方案,我使用的是 SQL Server 2005。

最佳答案

为什么 dev 和 prod 的数据库名称不同?显然,如果它们相同,那将是最简单的。

如果它是一个共享的表,那么您可以在它上面创建一个 View - 这只需要在转移到生产环境时更改该 View 。

否则,您需要 create a SYNONYM对于对象,并确保始终引用它。您仍然需要更改 SYNONYM 创建脚本,但我认为这可以很容易地在构建脚本中完成。

关于sql - 在不同环境中使用不同数据库名称的跨数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/314684/

相关文章:

SQL 结构转换为 OOP

php - 在Query中获取MYSQL查询执行时间

php - 使用 jquery + php 的动态 sql 查询

mysql - 如何查询 2 个 SQL 表并使用 1 个查询更改数据

database - 数据库怎么处理内存放不下的数据表?

java - Liferay 与 MarkLogic XDBC 数据库集成

mysql - 显示 "users"表中的所有用户名

MySQL:无法使用外键创建表

sql-server - 如何加快从大型数据库表中删除的速度?

sql - 创建只能查看一个数据库并只能从中进行选择的用户?