Batches van uitlatingen

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Een batch van Transact-SQL-statements bevat twee of meer statements, gescheiden door een puntkomma (;), ingebouwd in één enkele string die wordt doorgegeven aan SQLExecDirect of SQLPrepare Function. Voorbeeld:

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

Batches kunnen efficiënter zijn dan het apart indienen van instructies, omdat het netwerkverkeer vaak wordt verminderd. Gebruik SQLMoreResults om op de volgende resultaatset te komen zodra je klaar bent met de huidige resultaatset.

Batches kunnen altijd worden gebruikt wanneer de ODBC-cursorattributen zijn ingesteld op de standaardinstellingen van een forward-only, read-only cursor met een rijsetgrootte van 1.

Als een batch wordt uitgevoerd bij het gebruik van servercursors tegen SQL Server, wordt de servercursor impliciet omgezet naar een standaard resultaatset. SQLExecDirect of SQLExecute geven SQL_SUCCESS_WITH_INFO terug, en een aanroep naar SQLGetDiagRec geeft het volgende terug:

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