Gebruik WITH RESULT SETS
door de metadata expliciet te definiëren, kan SSIS de sp_describe_first_result_set
overslaan stap en gebruik de metadata die u definieert. Het voordeel is dat je dit kunt gebruiken om SSIS SQL te laten uitvoeren die een tijdelijke tabel bevat (voor mij hebben die prestaties veel geholpen); het nadeel is dat je dit handmatig moet onderhouden en bijwerken als er iets verandert.
Voorbeeld opvragen (opgeslagen procedure:)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
Queryvoorbeeld (eenvoudige SQL:)
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
)
)