Brug af WITH RESULT SETS
eksplicit at definere metadataene vil tillade SSIS at springe sp_describe_first_result_set
over trin og brug de metadata, som du definerer. Fordelen er, at du kan bruge dette til at få SSIS til at udføre SQL, der indeholder en midlertidig tabel (for mig hjalp den ydeevne meget); Ulempen er, at du manuelt skal vedligeholde og opdatere dette, hvis noget ændrer sig.
Forespørgselseksempel (lagret procedure:)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
Forespørgselseksempel (simpel 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
)
)