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?
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%Tags und Links sql sql-server-2005 stored-procedures tsql