In temporäre Tabelle von einer gespeicherten Prozedur einfügen, die mehrere Ergebnismengen zurückgibt

9

Betrachten Sie die folgenden sql

Ein gespeicherter Prozess namens myProc, der zwei Ergebnismengen zurückgibt. Ergebnismenge 1 gibt Spalte1, Spalte2 zurück. Ergebnismenge 2 gibt Spalte 3, Spalte 4, Spalte 5 zurück.

Die folgende SQL wird fehlschlagen, da die temporäre Tabelle nur 2 int-Spalten definiert hat.

%Vor%

Meine Frage ist, ist es möglich, einfach die erste Ergebnismenge in # temp1 einzufügen?

    
user263097 17.06.2011, 16:02
quelle

2 Antworten

2

Alte Post, aber ich hatte das gleiche Problem, und obwohl die oben erwähnten Antworten ein wenig verwandt sind, handelt es sich bei der Frage des OP um SP, die mehrere Sätze zurückgibt. Die einzige Lösung, die ich finden konnte, außer dem Umschreiben des SP, um es in kleinere SPs aufzuteilen, war das Schreiben einer SQL CLR Prozedur, die den SP ausführt und nur die erforderliche Ergebnismenge zurückgibt. Die Prozedur ruft den Index der gewünschten Ergebnismenge ab, führt eine SqlCommand aus, um die Initial T-SQL SP auszuführen, und führt dann eine Schleife durch SqlDataReader results, bis sie die gewünschte Ergebnismenge findet und die entsprechenden Datensätze zurückgibt. Der folgende Code ist Teil der Prozedur SQL CLR :

%Vor%

.......

%Vor%     
dan radu 15.06.2012 05:42
quelle
1

Es gibt einen anderen Weg

%Vor%

Dies fügt das erste Resultset in #temp

ein     
jakubk 15.08.2012 02:58
quelle