複数行セットの結果を生成するコマンド
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 による総計を、個別の行セット結果として返します。