如何访问位于 SP 中不同服务器上的另一个数据库?

How to access another database located on a different server in a SP?

我正在处理几年前编写的存储过程。 存储过程在连接查询中访问另一个数据库如下所示,

select * from C1
join D2.DBO.C2
where .....

目前它工作得很好,因为两个数据库驻留在同一台服务器上。该组织希望将 'D2' 数据库移动到另一台服务器。一旦发生这种情况,SP 就会失败。

他们还想将服务器名称作为参数传递到 sp

这可能吗?

像这样

CREATE PROC [dbo].[sp_Test]    
(  
 @DB2Name VARCHAR(100)  
)  
AS   

Select * from C1
join @DB2Name.DBO.C2

提前致谢

您将需要create a linked server

接下来您可以按照以下方式进行操作:

SELECT *
FROM [server\instance].[database].[schema].[table]