Método 1 : Cuando se conoce el esquema que produce el procedimiento almacenado T-SQL
Para demostrar el primer método, vamos a crear el siguiente procedimiento almacenado:
CREATE PROCEDURE GetNombresBD
AS
SELECT name, database_id
FROM
sys.databases
GO
Ejecutamos el procedimiento:
EXEC GetNombresDB
Ahora bien, si conocemos previamente el esquema del resultado del procedimiento almacenado
podemos construir en primer lugar una tabla con este mismo esquema.
CREATE TABLE #TablaPrueba ([name] NVARCHAR(256), [database_ID] INT);
INSERT INTO #TablaPrueba
EXEC GetNombresDB
-- Selecionar Tabla
SELECT *
FROM #TablaPrueba;
Método 2 - Cuando se Desconoce el Esquema que produce el Procedimiento Almacenado
Para los casos en los que se desconoce el esquema que producirá el procedimiento almacenado y queremos poblar una tabla con los resultados de este, debemos primero que todo, en los parámetros de la base de datos, activar dos de ellos para ejecutar con éxito el código propuesto.
sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
Una vez hecha la reconfiguración podemos ejecutar el siguiente código:
SELECT * INTO #TablaPrueba FROM OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;',
'EXEC tempdb.dbo.GetNombresDB')
-- Select Table
SELECT *
FROM #TablaPrueba;
La desventaja de este código es su complejidad pero funciona bastante bien en estos casos en los que desconocemos los nombres de las columnas
No hay comentarios.:
Publicar un comentario