gpt4 book ai didi

sql-server - 从存储过程引用远程 MS SQL 数据库

转载 作者:行者123 更新时间:2023-12-02 01:09:53 25 4
gpt4 key购买 nike

我在 MS SQL2008 R2 上继承了一个大型遗留系统。

存在大量引用另一个数据库的存储过程:

select * from MySeparateDatabase_LIVE.dbo.MyTable
select * from MySeparateDatabase_STAGING.dbo.MyTable
select * from MySeparateDatabase_TEST.dbo.MyTable

不幸的是,所有实时、暂存和测试数据库都在同一个 SQL 实例上,公司限制意味着这不会很快改变。

问题在于尝试将更改从测试推送到暂存和上线。它需要大量手动编辑或查找/替换 - 这会在关键系统上引入潜在错误。

我可以采用什么技术在每个数据库上使用完全相同的 SP?

最佳答案

Create SYNONYMs ,例如在您的测试数据库中:

CREATE SYNONYM dbo.MyTable FOR MySeparateDatabase_Test.dbo.MyTable;

在暂存阶段:

CREATE SYNONYM dbo.MyTable FOR MySeparateDatabase_Staging.dbo.MyTable;

这提供了一个抽象层,并允许您在每个数据库中使用相同的代码。通过这种方式,您可以一次部署不同的同义词,但过程可以相同(它们只会引用没有数据库前缀的 dbo.MyTable,让同义词重定向到正确的数据库)。测试数据库中的存储过程将引用另一个测试数据库中的表,临时数据库中的存储过程将引用另一个临时数据库中的表,等等。

关于sql-server - 从存储过程引用远程 MS SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512397/

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