Menggunakan WITH RESULT SETS
untuk mendefinisikan metadata secara eksplisit akan memungkinkan SSIS untuk melewati sp_describe_first_result_set
langkah dan gunakan metadata yang Anda tentukan. Keuntungannya adalah Anda dapat menggunakan ini untuk membuat SSIS menjalankan SQL yang berisi tabel sementara (bagi saya, kinerja itu sangat membantu); downside adalah, Anda harus memelihara dan memperbarui ini secara manual jika ada perubahan.
Contoh kueri (prosedur tersimpan :)
EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
(
(
MyIntegerColumn INT NOT NULL,
MyTextColumn VARCHAR(50) NULL,
MyOtherColumn BIT NULL
)
)
Contoh kueri (SQL sederhana :)
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
)
)