Cómo SELECCIONAR DEL procedimiento almacenado
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_NUMBER
y una WHERE
cláusula adicional para paginar mis datos, y realmente no quiero pasar estos valores como parámetros.
Aceptado
Puede
- cree una variable de tabla para contener el conjunto de resultados del proceso almacenado y luego
- inserte la salida del proceso almacenado en la variable de la tabla y luego
- 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 ...
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 SELECT
declaración.