Comandos que geram resultados de vários conjuntos de linhas
O provedor OLE DB do SQL Server pode retornar vários conjuntos de linhas de instruções do SQL Server. As instruções do SQL Server retornam resultados de vários conjuntos de linhas mediante as seguintes condições:
Instruções SQL processadas em lotes são enviadas como um único comando.
Os procedimentos armazenados implementam um lote de instruções SQL.
Instruções SQL incluem a cláusula Transact-SQL COMPUTE ou COMPUTE BY.
Lotes
O provedor OLE DB do SQL Server Native Client reconhece o caractere de ponto-e-vírgula como um delimitador de lote para instruções SQL:
WCHAR* wSQLString = L"SELECT * FROM Categories; "
L"SELECT * FROM Products";
Enviar várias instruções SQL em um único lote é mais eficiente do que executar cada instrução SQL separadamente. O envio de um lote reduz as viagens de ida e volta de rede do cliente para o servidor.
Procedimentos armazenados
O SQL Server retorna um conjunto de resultados para cada instrução em um procedimento armazenado, assim a maioria dos procedimentos armazenados do SQL Server retorna vários conjuntos de resultados.
COMPUTE BY e COMPUTE
A cláusula Transact-SQLCOMPUTE BY gera subtotais dentro de um conjunto de resultados da instrução SELECT. A cláusula COMPUTE gera um total no final do conjunto de resultados. O provedor OLE DB do SQL Server Native Client retorna cada subtotal de COMPUTE BY e o total de COMPUTE como um resultado separado de conjunto de linhas.