Utilisation de WITH RESULT SETS
définir explicitement les métadonnées permettra à SSIS d'ignorer le sp_describe_first_result_set
étape et utilisez les métadonnées que vous définissez. L'avantage est que vous pouvez l'utiliser pour que SSIS exécute SQL contenant une table temporaire (pour moi, cette performance a beaucoup aidé); l'inconvénient est que vous devez le maintenir et le mettre à jour manuellement si quelque chose change.
Exemple de requête (procédure stockée :)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
Exemple de requête (SQL simple :)
EXEC ('
CREATE TABLE #a
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
INSERT INTO #a
(
MyIntegerColumn,
MyTextColumn,
MyOtherColumn
)
SELECT
1 AS MyIntegerColumn,
''x'' AS MyTextColumn,
0 AS MyOtherColumn
SELECT MyIntegerColumn, MyTextColumn, MyOtherColumn
FROM #a')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL
,MyTextColumn VARCHAR(50) NULL
,MyOtherColumn BIT NULL
)
)