将参数传递给位于另一台服务器上的存储过程
Passing params to stored procedure located on another server
我在 服务器 A 上的 tempdb 数据库(在 System Databases 下)有一个存储过程].存储过程有 3 个参数,Param1、Param2 和 Param3,它们都接受 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 的安全跳转。
*(是的,我知道如何永久地做到这一点 - 但我怀疑它在天蓝色中是否有效)
我在 服务器 A 上的 tempdb 数据库(在 System Databases 下)有一个存储过程].存储过程有 3 个参数,Param1、Param2 和 Param3,它们都接受 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 的安全跳转。
*(是的,我知道如何永久地做到这一点 - 但我怀疑它在天蓝色中是否有效)