Ho una stored procedure che restituisce 80 colonne e 300 righe. Voglio scrivere una selezione che ottiene 2 di quelle colonne. Qualcosa di simile a
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Quando ho usato la sintassi sopra ho visualizzato l'errore:
"Nome colonna non valido".
So che la soluzione più semplice sarebbe quella di cambiare la procedura memorizzata, ma non l'ho scritta e non posso cambiarla.
C'è un modo per fare quello che voglio?
Potrei creare una tabella temporanea per inserire i risultati, ma poiché ci sono 80 colonne quindi avrei bisogno di creare una tabella temporanea a 80 colonne solo per ottenere 2 colonne. Volevo evitare di rintracciare tutte le colonne restituite.
Ho provato a usare
WITH SprocResults AS ....
come suggerito da Mark, ma ho ottenuto 2 erroriSintassi errata vicino alla parola chiave "EXEC".
Sintassi errata vicino a ")".Ho provato a dichiarare una variabile di tabella e ho ottenuto il seguente errore
Errore di inserimento: il nome della colonna o il numero di valori forniti non corrisponde alla definizione della tabella
Se provo
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
ottengo l'errore:Sintassi errata vicino alla parola chiave "exec".
EXEC
non è una parola chiave MySQL (l'equivalente MySQL è istruzioni preparate ). Anche se mi piacerebbe sapere la risposta per MySQL, le risposte sotto target T-SQL. Ricodifica.