Exec SP no servidor vinculado e coloque isso na tabela temporária
Precisa de ajuda sobre o problema abaixo:
Caso 1 : procedimento armazenado está no servidor 1 - a chamada é do servidor1
declare @tempCountry table (countryname char(50))
insert into @tempCountry
exec [database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry
Resultado: execução bem-sucedida
Case2 : Se este mesmo procedimento armazenado estiver sendo chamado de um servidor diferente usando um servidor vinculado como este:
declare @tempCountry table (countryname char(50))
insert into @tempCountry
exec [database2_server2].[database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry
Resultado
Msg 7391, nível 16, estado 2, linha 2
A operação não pôde ser executada porque o provedor OLEDB "SQLNCLI" para o servidor de link "Server2_Database2" não pôde iniciar uma transação distribuída.
Caso 3
Mas quando tentamos executar o procedimento armazenado separadamente [sem inserção de tabela temporária] como abaixo
exec [database2_server2].[database1_server1].[dbo].[getcountrylist]
Resultado: está executando o procedimento armazenado sem nenhum erro e retornando dados.
Esqueci de mencionar que estou usando o SQL Server 2005. Conforme o administrador do servidor, o recurso que você sugeriu que eu use não esteja disponível em 2005.