Tengo un procedimiento almacenado que devuelve 80 columnas y 300 filas. Quiero escribir una selección que obtenga 2 de esas columnas. Algo como
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Cuando utilicé la sintaxis anterior obtengo el error:
"Nombre de columna inválido".
Sé que la solución más fácil sería cambiar el procedimiento almacenado, pero no lo escribí y no puedo cambiarlo.
¿Hay alguna forma de hacer lo que quiero?
Podría hacer una tabla temporal para poner los resultados, pero debido a que hay 80 columnas, necesitaría hacer una tabla temporal de 80 columnas solo para obtener 2 columnas. Quería evitar rastrear todas las columnas que se devuelven.
Intenté usar
WITH SprocResults AS ....
como lo sugirió Mark, pero obtuve 2 erroresSintaxis incorrecta cerca de la palabra clave 'EXEC'.
Sintaxis incorrecta cerca ')'.Intenté declarar una variable de tabla y recibí el siguiente error
Error de inserción: el nombre de la columna o el número de valores proporcionados no coincide con la definición de la tabla
Si lo intento
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
me sale el error:Sintaxis incorrecta cerca de la palabra clave 'exec'.
EXEC
no es una palabra clave MySQL (el equivalente de MySQL es declaraciones preparadas ). Aunque me gustaría saber la respuesta para MySQL, las respuestas a continuación apuntan a T-SQL. Reetiquetado