Freigeben über


Mehrere Rowsetergebnisse generierende Befehle

Der SQL Server Native Client OLE DB-Anbieter kann mehrere Rowsets von SQL Server-Anweisungen zurückgeben. SQL Server-Anweisungen geben unter folgenden Bedingungen mehrere Rowsetergebnisse zurück:

  • SQL-Anweisungen im Batchmodus werden als einzelner Befehl gesendet.

  • Gespeicherte Prozeduren implementieren einen Batch SQL-Anweisungen.

  • SQL-Anweisungen schließen die Transact-SQL COMPUTE-Klausel oder COMPUTE BY-Klausel ein.

Batches

Der SQL Server Native Client OLE DB-Anbieter erkennt das Semikolon-Zeichen als Batchtrennzeichen für SQL-Anweisungen:

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

Mehrere SQL-Anweisungen in einem Batch zu senden ist effizienter, als jede SQL-Anweisung einzeln auszuführen. Durch Senden eines Batches werden die Netzwerkroundtrips vom Client auf den Server reduziert.

Gespeicherte Prozeduren

SQL Server gibt ein Resultset für jede Anweisung in einer gespeicherten Prozedur zurück, sodass die meisten gespeicherten SQL Server-Prozeduren mehrere Resultsets zurückgeben.

COMPUTE BY und COMPUTE

Die Transact-SQL COMPUTE BY-Klausel generiert Teilergebnisse aus einem SELECT-Anweisungsresultset. Die COMPUTE-Klausel generiert am Ende des Resultsets ein Gesamtergebnis. Der SQL Server Native Client OLE DB-Anbieter gibt jedes COMPUTE BY-Teilergebnis und das COMPUTE-Gesamtergebnis als separates Rowsetergebnis zurück.

Siehe auch

Konzepte