Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden von Temp-Tabellen in SSIS

UPDATE November 2020.
Dieser Beitrag wurde ersetzt durch Wie man eine gespeicherte Prozedur von SSIS ausführt, um ihre Ausgabe in eine Textdatei zu bekommen das beschreibt, wie eine gespeicherte Prozedur von SSIS aus ausgeführt wird

exec mySproc WITH RESULT SETS ((i int))

Sehen Sie sich die Lösung von Troy Witthoeft an

Alte Antwort
Es gibt eine andere Lösung, die unter https://web.archive.org/web/20120915093807/http://sqlserverpedia.com/blog/sql-server-bloggers/ssis-stored-procedure-metadata . Sehen Sie sich Option 3 an. (November 2020; aktualisierter Link)

Zitat:Fügen Sie der gespeicherten Prozedur einige Metadaten und das "set nocount on" mit einer "kurzgeschlossenen if-Klausel" (wenn 1 =0) und einer falschen select-Anweisung oben hinzu. Ich habe getestet, indem ich versucht habe, "set nocount on" auszulassen, und es hat nicht funktioniert.

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 
    )