Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation des tables temporaires dans SSIS

MISE À JOUR novembre 2020.
Ce message a été remplacé par Comment exécuter une procédure stockée à partir de SSIS pour obtenir sa sortie dans un fichier texte qui décrit comment exécuter une procédure stockée à partir de SSIS

exec mySproc WITH RESULT SETS ((i int))

regardez la solution fournie par Troy Witthoeft

Ancienne réponse
Il existe une autre solution mentionnée sur https://web.archive.org/web/20120915093807/http://sqlserverpedia.com/blog/sql-server-bloggers/ssis-métadonnées-de-procédure-stockée . Regardez l'option 3. (novembre 2020 ; lien mis à jour)

Citation :Ajoutez des métadonnées et le "set nocount on" à la procédure stockée avec une "clause if en court-circuit" (si 1 =0) et une fausse instruction select en haut. J'ai testé en essayant de laisser le "set nocount on" et cela n'a pas fonctionné.

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 
    )