Gespeicherte Prozedur und füllen einer Temp-Tabelle aus einer verknüpften Gespeicherten Prozedur mit Parametern
Ich habe eine Gespeicherte Prozedur (SP), in dem ich-pass in einem Wert zusammen. In diesem SP, ich bin versucht zu erstellen/Befüllen eine Temp-Tabelle aus dem Ergebnis einer anderen SP, der auf einer Verlinkten/remote-server. Das heißt, dass ich versuche, executute einen SP in meiner SP, und füllen Sie eine temporäre Tabelle, die meine Abfrage verwenden.
Ich habe versucht, verwenden Sie die folgende syntax, aber es funktioniert nicht wie es scheint openquery nicht wie die " + " - oder die @param1 parameter.
select * into #tempTable
from openquery([the Linked server],'exec thelinkedSPname ' + @param1)
Wenn ich den parameter-Wert hart codiert in diesem funktioniert es einwandfrei.
select * into #tempTable
from openquery([the Linked server],'exec thelinkedSPname 2011')
Habe ich auch soweit gegangen manuellen Erstellung der temp Tabelle und versucht zum ausführen der verknüpften SP aber das funktioniert nicht so gut.
create table #tempTable(
.
.
.
)
insert into #tempTable
(
.
.
.
)
Exec [the Linked server],'exec thelinkedSPname ' + @param1
Irgendwelche Vorschläge, wie man zum Auffüllen eine temp-Tabelle in eine SP, die ausgeführt wird, eine SP über einen verknüpften server. Hinweis: die oben genannten SQL ist nur pseudo-code
InformationsquelleAutor R M | 2011-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Worte: Dynamische Abfrage.
Versuchen Sie dies:
Dies ist sehr gut hier dokumentiert:
Wie übergibt man eine variable an eine Abfrage des Verbindungsservers
Vielen Dank, das hat funktioniert.
InformationsquelleAutor Kash
Ich denke, Sie sind gonna brauchen, dynamischen SQL, da kann man sich nicht über die parameter, um eine
OPENQUERY
wie (aber zuerst besuchen Sie diese link), So würden Sie so etwas wie dieses:InformationsquelleAutor Lamak
Mit den üblichen Haftungsausschlüssen, die über die Bewachung dynamischen SQL, Sie können dies tun, ohne OPENQUERY etc. Rufen Sie einfach sp_executesql aus der Ferne:
InformationsquelleAutor Aaron Bertrand
Ich nutze diese Methode Recht Häufig:
InformationsquelleAutor DeFlanko
Mit etwas Vorsicht könnte man eine freigegebene temp-Tabelle:
InformationsquelleAutor Shaun Keon