miércoles, 27 de julio de 2011

INSERT EXEC en SQL Server

Para insertar el resultado de un procedimiento almacenado que consulta una tabla en otra tabla, echamos mano de la instruccion INSERT y la instrucción EXEC, de la siguiente manera:

  1. Debemos conocer el resultado del procedimiento almacenado.
  2. Crearemos una tabla (permanete, temporal o variable, según nuestras necesidades y objetivos).
  3. Insertaremos el resultado.

Por ejemplo: sp_tables nos regresa el listado de tablas de la base de datos actual y su estructura es:
  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

Crearemos una tabla temporal para insertar el resultado

CREATE TABLE #Temp
(
TABLE_QUALIFIER varchar(50),
TABLE_OWNER varchar(50),
TABLE_NAME varchar(50),
TABLE_TYPE varchar(50),
REMARKS varchar(250)
)

Insertaremos directamente el resultado del procedimiento almacenado:

INSERT #Temp EXEC sp_tables

Y listo, podemos utilizar la tabla obtenida del procedimiento almacenado.

SELECT * FROM #Temp

¿Sencillo verdad?

No hay comentarios:

Publicar un comentario