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?

Related Posts

CURRENT_IDENT y RESEED en Sql Server Compact Edition

admin

April 21, 2018

SQL SERVER

No Comment

Sql Server Compact Edition no cuenta con funciones como RESEED o CURRENT_IDENT, así que tenemos que hechar mano de consultas a la información de esquema y de alteración de tablas. Como sustituto a IDENT_CURRENT tenemos: [sql] SELECT AUTOINC_NEXT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ‘MiTabla’ AND COLUMN_NAME = ‘MiColumna’ [/sql] Y como sustituto a RESEED tenemos […]

Read More

Conexión a Sql Server con Php 5.6 linux CentOS 6

admin

March 28, 2016

PHP, SQL SERVER

No Comment

Para conectarse a Sql Server desde linux utilizamos este comando para instalar el driver: [bash] $ sudo yum install -y php-mssql [/bash] Por ejemplo, para php5.6: [bash] $ sudo yum install -y php56w-mssql [/bash] Esta instrucción instala freetds, una colección de librerias para conectarnos con Sql Server desde linux. Con esta librería no solo podemos […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *