Exec SP auf dem Verbindungsserver und legen Sie das in der temporären Tabelle

Benötigen Sie Hilfe zu folgendem Problem:

Fall : gespeicherte Prozedur befindet sich auf Server 1 - Aufruf erfolgt von Server1

declare @tempCountry table (countryname char(50))
insert into @tempCountry
    exec [database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry

Ergebnis: erfolgreiche Ausführung

Case2: iWenn dieselbe gespeicherte Prozedur von einem anderen Server mit einem Verbindungsserver wie diesem aufgerufen wird:

declare @tempCountry table (countryname char(50))
insert into @tempCountry
    exec [database2_server2].[database1_server1].[dbo].[getcountrylist]
Select * from @tempCountry

Ergebni

Nachricht 7391, Ebene 16, Status 2, Zeile 2
Der Vorgang konnte nicht ausgeführt werden, da der OLEDB-Anbieter "SQLNCLI" für den Verbindungsserver "Server2_Database2" keine verteilte Transaktion starten konnte.

Case 3

Aber wenn versucht wird, die gespeicherte Prozedur separat auszuführen [ohne temporäre Tabelleneinfügung] wie unten beschrieben

exec [database2_server2].[database1_server1].[dbo].[getcountrylist]

Ergebnis: Führt die gespeicherte Prozedur fehlerfrei aus und gibt Daten zurück.

Ich habe vergessen zu erwähnen, dass SQL Server 2005 verwendet wird. Laut Serveradministrator ist die von Ihnen vorgeschlagene Funktion in 2005 nicht verfügbar.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage