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 intento
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
Me sale el error:

Sintaxis incorrecta cerca de la palabra clave 'exec'.

Respuestas a la pregunta(16)

Su respuesta a la pregunta