複数行セットの結果を生成するコマンド

SQL Server Native Client OLE DB プロバイダでは、SQL Server のステートメントから複数の行セットを返すことができます。SQL Server のステートメントは、次の条件が満たされた場合に複数行セットの結果を返します。

  • バッチにまとめられた SQL ステートメントが 1 つのコマンドとして実行される場合。

  • ストアド プロシージャが SQL ステートメントのバッチを実装している場合。

  • SQL ステートメントに Transact-SQL の COMPUTE 句または COMPUTE BY 句が含まれている場合。

バッチ

SQL Server Native Client OLE DB プロバイダでは、セミコロンを SQL ステートメントのバッチ区切り記号として認識します。

WCHAR*       wSQLString = L"SELECT * FROM Categories; "
                          L"SELECT * FROM Products";

複数の SQL ステートメントを 1 つのバッチにまとめて送信する方が、各 SQL ステートメントを個別に実行するよりも効率的です。1 つのバッチを送信することで、クライアントからサーバーへのネットワーク ラウンド トリップが減少するためです。

ストアド プロシージャ

SQL Server は、ストアド プロシージャ内のステートメントごとに結果セットを返します。このため、大半の SQL Server ストアド プロシージャは複数の結果セットを返します。

COMPUTE BY と COMPUTE

Transact-SQL の COMPUTE BY 句は、SELECT ステートメントの結果セット内で小計を生成します。COMPUTE 句は、結果セットの最後に総計を生成します。SQL Server Native Client OLE DB プロバイダでは、COMPUTE BY による各小計と COMPUTE による総計を、個別の行セット結果として返します。

関連項目

概念