Seleccionar columnas del conjunto de resultados del procedimiento almacenado
Tengo un procedimiento almacenado que devuelve 80 columnas y 300 filas. Quiero escribir una selección que obtiene 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 manera de hacer lo que quiero?
Podría hacer una tabla temporal para colocar 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.
Traté de usarWITH SprocResults AS ....
Como sugirió Mark, pero tengo 2 errores.
Sintaxis incorrecta cerca de la palabra clave 'EXEC'.
Sintaxis incorrecta cerca ')'.
Intenté declarar una variable de tabla y obtuve 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 intentoSELECT * FROM EXEC MyStoredProc 'param1', 'param2'
Me sale el error:
Sintaxis incorrecta cerca de la palabra clave 'exec'.