Si un Procedimiento Almacenado devuelve como resultado un conjunto de registros obtenidos con SELECT, este resultado puede ser obtenido y utilizado dentro de otro procedimiento almacendado, para ello este resultado debe ser almacenado en una tabla temporal o una variable tabla que tenga la misma estructura de campos que el procedimiento almacenado a ejecutar devuelve.
A continuación se muestra un ejemplo de su uso. Espero les sirva.
-- -- ---exec spr_ObtenerAgendaPorTipoContacto 2 -- Crear el Procedimiento almacenado create procedure spr_ObtenerAgendaPorTipoContacto @Tipo varchar(2) as SELECT 1, 'VARGAS', 'DAVILA', 'CARLOS', '949685100', 'CE' -- Compañero Estudios UNION SELECT 2, 'DURAND', 'ALVA', 'LUCIA', '949685002', 'CT' -- Compañero Trabajo UNION SELECT 3, 'FLORES', 'CASTRO', 'CESAR', '949452200', 'CT' -- Compañero Trabajo GO -- CON TABLA TEMPORAL CREATE TABLE #AgendaTemporal ( Id INT, ApePaterno VARCHAR(20), ApeMaterno VARCHAR(20), Nombres VARCHAR(30), Telefono varchar(20), TipoContacto varchar(2) ) -- crear tabla temporal INSERT #AgendaTemporal (Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto) EXEC spr_ObtenerAgendaPorTipoContacto 'CT' select Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto from #AgendaTemporal drop table #AgendaTemporal -- Eliminar la tabla temporal -- CON VARIABLE TABLA DECLARE @AgendaTemporal2 TABLE (Id INT, ApePaterno VARCHAR(20), ApeMaterno VARCHAR(20), Nombres VARCHAR(30), Telefono varchar(20), TipoContacto varchar(2) ) -- crear variable tabla INSERT @AgendaTemporal2 (Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto) EXEC spr_ObtenerAgendaPorTipoContacto 'CE' select Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto from @AgendaTemporal2 -------------------------------- --------------------------------
Siempre es bueno mencionar las referencias de donde uno se guía para aprender, en este caso: https://fuentedeconocimientos.wordpress.com/2013/02/09/pasar-datos-de-procedimiento-almacenado-a-tabla-temporal/comment-page-1/
5/13/2015 03:15:00 p. m.
Share:
0 comentarios: