以下のように複数の結果セットを返すストアドプロシージャがあります
CREATE StoredProcedure sp_MultipleDataSets
AS
BEGIN
SELECT EMPID, ENAME, JOB, SAL, DEPTID FROM EMP -- first result set
SELECT DEPTID, DNAME, LOC FROM DEPT --second result set
END
BIDS で、新しいレポートを作成するときに、データセットのストアド プロシージャを構成しました。最初の結果セットから返された列のみを含むデータセットが作成されます。2 番目の結果セットは識別されません。
上記のようなストアドプロシージャから両方の結果セットのデータセットを作成するにはどうすればよいでしょうか
ベストアンサー1
残念ながら、ドキュメントの説明はこちら:
単一のクエリを通じて複数の結果セットが取得された場合、最初の結果セットのみが処理され、他のすべての結果セットは無視されます。
(発見元:この質問。
したがって、次の 2 つの可能性のいずれかを使用することをお勧めします。
(1)手順を2つの別々の手順に分割します。1つはEMPからデータを返す手順、もう1つはDEPTからデータを返す手順です。そして、新しい手順に2つの別々のデータセットとしてアクセスします。
(2) 2 つの個別のクエリを結合し (各行を生成したクエリを示す追加の列を含む)、レポートを適切にフィルター処理または条件付き書式設定します。結合されたクエリは次のようになります。
SELECT EMPID ID, ENAME NAME, JOB JOB_LOC, SAL, DEPTID, 'EMP' SOURCE
FROM EMP
UNION ALL
SELECT DEPTID ID, DNAME NAME, LOC JOB_LOC, NULL SAL, DEPTID DEPTID, 'DEPT' SOURCE
FROM DEPT