Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo delle tabelle temporanee in SSIS

AGGIORNAMENTO novembre 2020.
Questo post è stato sostituito da Come eseguire l'EXEC di una stored procedure da SSIS per ottenere il suo output in un file di testo che descrive come eseguire una procedura memorizzata da SSIS

exec mySproc WITH RESULT SETS ((i int))

guarda la soluzione fornita da Troy Witthoeft

Vecchia risposta
Esiste un'altra soluzione menzionata in https://web.archive.org/web/20120915093807/http://sqlserverpedia.com/blog/sql-server-bloggers/ssis-stored-procedure-metadata . Guarda l'opzione 3. (novembre 2020; link aggiornato)

Citazione:aggiungi alcuni metadati e "set nocount on" alla stored procedure con una "clausola if in cortocircuito" (se 1 =0) e un'istruzione select fasulla in alto. Ho provato a lasciare fuori "set nocount on" e non ha funzionato.

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 
    )