Я звоню процедуры из сервера B:процедура OpenQuery от связанного сервера
select * from openquery(A,'exec sp_qa2')
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
и sp_qa1 в сервере А это:
create procedure sp_qa1
begin
declare @a int
end
Эта ошибка возвращается:
Msg 208, уровень 16, состояние 1, процедура sp_MSforeach_worker, строка 102 [Batch Start Line 2] Недопустимое имя объекта '#qtemp'.
Как это исправить?
Похоже '# qtemp' не была создана в' sp_MSforeach_worker'. Можете ли вы отправить код из этой процедуры, где происходит эта ошибка? Кроме того, эта процедура не упоминается нигде в коде, который вы предоставили. Как это выполняется? – Aidan
Эта таблица #qtemp в sp_MSforeach_worker - это системная процедура, которая у всех есть. Это не то, что я создал. – Sher
Так оно и есть, мои извинения. – Aidan