SQL Server - Procedimiento almacenado SELECT FROM

Tengo un procedimiento almacenado que devuelve filas:

CREATE PROCEDURE MyProc
AS
BEGIN
    SELECT * FROM MyTable
END

Mi procedimiento real es un poco más complicado, por lo que es necesario un sproc.

¿Es posible seleccionar la salida llamando a este procedimiento?

Algo así como

SELECT * FROM (EXEC MyProc) AS TEMP

Necesito usar SELECT TOP X, ROW_NUMBER, y una cláusula adicional WHERE para paginar mis datos, y realmente no quiero pasar estos valores como parámetros.

Puedes

  1. crear una variable de tabla para mantener el conjunto de resultados del proceso almacenado y luego
  2. insertar la salida del en la variable de la tabla, y luego
  3. utilizar la variable de la tabla exactamente como lo haría con cualquier otra tabla...

... sql ....

Declare @T Table ([column definitions here])
Insert @T Exec storedProcname params 
Select * from @T Where ...
Comentarios (3)

O bien quieres una función con valor de tabla o insertar tu EXEC en una tabla temporal:

INSERT INTO #tab EXEC MyProc
Comentarios (1)

Parece que sólo necesitas usar una vista. Una vista permite representar una consulta como una tabla para que ésta, la vista, pueda ser consultada.

Comentarios (0)