2 Stimmen

Holen Sie die letzte Tabelle aus der SQL Server-gespeicherten Prozedur

Ich habe ein gespeichertes Verfahren SP1, das zwei Tabellen T1 und T2 mit SELECT-Anweisungen zurückgibt. Ich möchte einige Operationen auf T2 in einem anderen gespeicherten Verfahren SP2 durchführen. Kann mir jemand erklären, wie ich das machen kann?

2voto

Josien Punkte 11891

Option 1

Ändern Sie SP1, um T2 in einer Tabelle zu speichern, zusätzlich zur Rückgabe mit einem SELECT. Verwenden Sie dann diese Tabelle als Eingabe für SP2.

Option 2

Wenn Sie SP1 nicht ändern können, können Sie die Ausgabe des gespeicherten Prozesses in einer Tabelle erfassen. Schauen Sie sich diese Frage auf StackOverflow an, wie Sie dies machen können, indem Sie OPENROWSET verwenden oder indem Sie im Voraus eine temporäre Tabelle definieren: Wie lautet SELECT * INTO [Temporäre Tabelle] AUS [gespeichertem Prozess].

Diese Option wird nicht funktionieren, wenn T1 und T2 keine gleiche Definition haben. Wenn sie die gleiche Definition haben, können Sie beide Ergebnismengen in eine Tabelle importieren, wie folgt:

-- Erstellen Sie eine temporäre Tabelle mit der gleichen Definition wie T1 und T2
CREATE TABLE #temp (
    Col1 SOME DATATYPE,
    Col2 SOME DATATYPE
);

-- Füllen Sie Ihre temp Tabelle mit den Ergebnismengen von T1 und T2
INSERT INTO #temp
EXEC [dbo].[SP1];

Aber dann müssen Sie mit der T1-plus-T2-Tabelle anstelle von T2 umgehen.

Es scheint also, dass Option 1 die beste Wahl für Sie ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X