Verwendung von WITH RESULT SETS
Wenn Sie die Metadaten explizit definieren, kann SSIS das sp_describe_first_result_set
überspringen Schritt und verwenden Sie die von Ihnen definierten Metadaten. Der Vorteil ist, dass Sie dies verwenden können, um SSIS dazu zu bringen, SQL auszuführen, das eine temporäre Tabelle enthält (für mich hat diese Leistung sehr geholfen); Der Nachteil ist, dass Sie dies manuell pflegen und aktualisieren müssen, wenn sich etwas ändert.
Abfragebeispiel (gespeicherte Prozedur:)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
Abfragebeispiel (einfaches 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
)
)