Cómo SELECCIONAR DEL procedimiento almacenado

Resuelto jonathanpeppers asked hace 15 años • 16 respuestas

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 eso es necesario un procedimiento almacenado.

¿Es posible seleccionar la salida llamando a este procedimiento?

Algo como:

SELECT * FROM (EXEC MyProc) AS TEMP

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

jonathanpeppers avatar Sep 29 '09 20:09 jonathanpeppers
Aceptado

Puede

  1. cree una variable de tabla para contener el conjunto de resultados del proceso almacenado y luego
  2. inserte la salida del proceso almacenado en la variable de la tabla y luego
  3. use la variable de 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 ...
Charles Bretana avatar Sep 29 '2009 13:09 Charles Bretana

Puede utilizar una función definida por el usuario o una vista en lugar de un procedimiento.

Un procedimiento puede devolver varios conjuntos de resultados, cada uno con su propio esquema. No es adecuado para usar en una SELECTdeclaración.

Mehrdad Afshari avatar Sep 29 '2009 13:09 Mehrdad Afshari