将参数传递给位于另一台服务器上的存储过程

Passing params to stored procedure located on another server

我在 服务器 A 上的 tempdb 数据库(在 System Databases 下)有一个存储过程].存储过程有 3 个参数,Param1Param2Param3,它们都接受 varchars。

我想在 服务器 B 上为名为 SomeDB.

的数据库执行此存储过程

使用存储过程,我想从 SomeDB 上的不同 table 中提取数据,然后将结果放入新的 table ] 将创建名为 SomeNewTable,它将再次位于 SomeDb

假设服务器已链接。

我该如何处理?

在 ServerB 上编写存储过程。测试存储过程,以便当您连接到服务器 B 时,它可以 运行 在 ServerB 上完全运行。所以一切都在服务器 B 中发生。

现在只需从服务器 A 调用服务器 B 存储过程即可。
在服务器 B 上执行 SomeDb.dbo.myStoredProc(p1,p2,p3)

在服务器 A 上执行 LinkedServerB。SomeDb.dbo.myStoredProc(p1,p2,p3)

不要将 tempDb 用于任何事情 - 您无法可靠地将存储过程放入 TempDb*

它会在临时数据库中工作一段时间这一事实具有误导性。 如果您正在进行编码练习,他们可能会让您使用 tempDb,但这是一种特殊情况。

根据链接服务器的设置方式,您将不得不处理从 ServerA 到 ServerB 的安全跳转。

*(是的,我知道如何永久地做到这一点 - 但我怀疑它在天蓝色中是否有效)