Freigeben über


Batches von Anweisungen

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Ein Batch von Transact-SQL-Anweisungen enthält zwei oder mehr Anweisungen, getrennt durch ein Semikolon (;), in eine einzelne Zeichenfolge integriert, die an SQLExecDirect oder SQLPrepare Function übergeben wird. Zum Beispiel:

SQLExecDirect(hstmt,   
    "SELECT * FROM Authors; SELECT * FROM Titles",  
    SQL_NTS);  

Batches können effizienter als das Senden getrennter Anweisungen sein, da der Netzwerkdatenverkehr dadurch meist reduziert wird. Verwenden Sie SQLMoreResults , um die Position im nächsten Resultset abzurufen, wenn sie mit dem aktuellen Resultset fertig gestellt wurde.

Batches können immer dann verwendet werden, wenn die ODBC-Cursorattribute auf die Standardeinstellungen eines schreibgeschützten Vorwärtscursors mit der Rowsetgröße 1 festgelegt wurden.

Wenn beim Verwenden von Servercursorn für SQL Server ein Batch ausgeführt wird, wird der Servercursor implizit in einen Standardergebnissatz konvertiert. SQLExecDirect oder SQLExecute geben SQL_SUCCESS_WITH_INFO zurück, und ein Aufruf von SQLGetDiagRec gibt Folgendes zurück:

szSqlState = "01S02", pfNativeError = 0  
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."  

Weitere Informationen

Ausführen von ODBC-Anweisungen