Ich habe eine gespeicherte Prozedur, die 80 Spalten und 300 Zeilen zurückgibt. Ich möchte einen Select schreiben, der 2 dieser Spalten abruft. Etwas wie
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Wenn ich die obige Syntax verwende, erhalte ich den Fehler:
"Ungültiger Spaltenname".
Ich weiß, die einfachste Lösung wäre, die gespeicherte Prozedur zu ändern, aber ich habe sie nicht geschrieben und kann sie nicht ändern.
Gibt es eine Möglichkeit, das zu tun, was ich möchte?
-
Ich könnte eine temporäre Tabelle erstellen, um die Ergebnisse darin zu speichern, aber da es 80 Spalten gibt, müsste ich eine temporäre Tabelle mit 80 Spalten erstellen, um nur 2 Spalten zu erhalten. Ich wollte vermeiden, dass alle Spalten, die zurückgegeben werden, nachverfolgt werden.
-
Ich habe es mit
WITH SprocResults AS ....
wie von Mark vorgeschlagen, aber ich bekam 2 FehlerFalsche Syntax in der Nähe des Schlüsselworts 'EXEC'.
Falsche Syntax in der Nähe von ')'. -
Ich habe versucht, eine Tabellenvariable zu deklarieren und erhielt folgende Fehlermeldung
Fehler einfügen: Spaltenname oder Anzahl der gelieferten Werte stimmt nicht mit der Tabellendefinition überein
-
Wenn ich versuche
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
Ich erhalte die Fehlermeldung :Falsche Syntax in der Nähe des Schlüsselworts 'exec'.