Necesito acceder al resultado de un procedimiento almacenado dentro de una declaración de selección, es decir:
SELECT * FROM [dbo].[sp_sample]
en SQL_Server 2005.
Respuestas
1 para la respuesta № 1@Barry tiene razón debe crear una tabla temporal e insertarla primero, luego unirse a esa tabla en su selección.
Sin embargo, existen numerosas formas de compartir datos entre procedimientos almacenados, consulte este excelente artículo: Cómo compartir datos entre procedimientos almacenados por Erland Sommarskog
Un método que puede funcionar para usted es "compartir" una tabla temporal. La tabla #temp se crea en el procedimiento principal y puede ser utilizada por el elemento secundario: http://www.sommarskog.se/share_data.html#temptables
3 para la respuesta № 2
Esto no es posible. Tendría que crear una tabla temporal para almacenar los resultados.
Create Table #tmp
(
...
)
Insert into #tmp
Exec dbo.StoredProcedure
La estructura de la tabla debe coincidir con la salida del procedimiento almacenado.