WITH RESULT SETS
を使用する メタデータを明示的に定義すると、SSISはsp_describe_first_result_set
をスキップできます。 ステップして、定義したメタデータを使用します。利点は、これを使用して、一時テーブルを含むSQLをSSISに実行させることができることです(私にとって、そのパフォーマンスは大いに役立ちました)。欠点は、何かが変更された場合、これを手動で保守および更新する必要があることです。
クエリサンプル(ストアドプロシージャ:)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
クエリサンプル(単純な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
)
)