sql >> Base de Datos >  >> RDS >> Sqlserver

Uso de tablas temporales en SSIS

ACTUALIZACIÓN de noviembre de 2020.
Esta publicación ha sido reemplazada por Cómo ejecutar un procedimiento almacenado de SSIS para obtener su salida en un archivo de texto que describe cómo ejecutar un procedimiento almacenado desde SSIS

exec mySproc WITH RESULT SETS ((i int))

mira la solución proporcionada por Troy Witthoeft

Respuesta antigua
Hay otra solución mencionada en https://web.archive.org/web/20120915093807/http://sqlserverpedia.com/blog/sql-server-bloggers/ssis-stored-procedure-metadata . Mire la opción 3. (Noviembre de 2020; enlace actualizado)

Cita:agregue algunos metadatos y "establecer sin contar" al procedimiento almacenado con una "cláusula if en cortocircuito" (si 1 =0) y una declaración de selección falsa en la parte superior. Probé tratando de dejar el "set nocount on" y no funcionó.

CREATE PROCEDURE [dbo] . [GenMetadata] AS 
SET NOCOUNT ON 
IF 1 = 0 
    BEGIN
         -- Publish metadata 
        SELECT   CAST (NULL AS INT ) AS id , 
                CAST (NULL AS NCHAR ( 10 )) AS [Name] , 
                CAST (NULL AS NCHAR ( 10 )) AS SirName 
    END 

 -- Do real work starting here 
CREATE TABLE #test 
    ( 
      [id] [int] NULL, 
      [Name] [nchar] ( 10 ) NULL, 
      [SirName] [nchar] ( 10 ) NULL 
    )