我正在从服务器B调用程序:
select * from openquery(A,'exec sp_qa2')
服务器A中的sp_qa2是:
use master
go
create procedure sp_qa2
begin
declare @sql nvarchar(1000)
SET @sql = 'USE [?]; EXEC [dbo].[sp_qa1]'
EXEC sp_MSforeachdb @sql
end
服务器A中的和sp_qa1是:
create procedure sp_qa1
begin
declare @a int
end
此错误正在返回:
Msg 208,Level 16,State 1,Procedure sp_MSforeach_worker,102行 [批处理开始第2行]无效的对象名称'#qtemp'。
我该如何解决这个问题?
答案 0 :(得分:0)
您的关联服务器的RPC
和RPC OUT
选项是否为TRUE
?
此外,您可以直接执行代码而无需使用openquery,如下所示:
EXEC [A].[database].[schema].sp_qa2
答案 1 :(得分:0)
您也可以尝试使用:
EXEC(@sql) AT [RemoteServer]