gpt4 book ai didi

sql - SQL Server中如何创建数据库的别名

转载 作者:太空狗 更新时间:2023-10-30 01:39:00 25 4
gpt4 key购买 nike

我们有一个大约 10 年前创建的非常老的软件,我们没有源代码。

该软件在同一个 SQL Server 2012 实例上使用两个数据库,DB01DB02

有 SQL 语句,例如 db01..table1 join db02..table2,但主要问题是我们的进程不允许我们使用 db02 作为名称数据库。

问题是:我们如何为数据库创建别名?

我正在尝试使用 CREATE SYNONYM

CREATE SYNONYM [db02] FOR [db02_new_name];

但它不适用于数据库名称。

请建议如何在不修补二进制文件以更正 SQL 语句的情况下解决此问题。

最佳答案

使用您要模拟的名称创建一个数据库。重新调整 DDL 代码生成器,为数据库中的每个表创建一个 View ,其中包含我需要通过硬编码名称访问的表。基本上,每个 View 都会有一个如下所示的语句。

CREATE VIEW schemaname.tablename as SELECT * FROM targetdbname.schemaname.tablename

示例:

硬编码的目标数据库名称称为 ProdDBV1,您拥有的源数据库名为 ProductDatabaseDatabaseV1,架构为 dbo 和表名是客户

  1. 使用 SSMS 或脚本创建名为 ProdDBV1 的数据库。
  2. 创建 View dbo.customer 作为 SELECT * FROM ProductDatabaseDatabaseV1.dbo.customer

如果您可以枚举“源”数据库中的每个表,然后像上面那样创建 DDL。如果您愿意,我可以使用代码示例更新此帖子。 (如果可能,使用 sp_msforeachtable 过程)

关于sql - SQL Server中如何创建数据库的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com