Lotes de instrucciones

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Un lote de instrucciones Transact-SQL contiene dos o más instrucciones, separadas por un punto y coma (;), integrada en una sola cadena pasada a SQLExecDirect o SQLPrepare Function. Por ejemplo:

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

Los lotes pueden ser más eficaces que el envío de instrucciones por separado porque el tráfico de red suele ser reducido. Use SQLMoreResults para colocarse en el siguiente conjunto de resultados cuando termine con el conjunto de resultados actual.

Siempre pueden usarse lotes cuando los atributos de cursor de ODBC se establecen en los valores predeterminados de un cursor de solo avance y de solo lectura cuyo conjunto de filas tiene un tamaño de 1.

Si se ejecuta un lote cuando se usan cursores de servidor en SQL Server, el cursor del servidor se convierte implícitamente en un conjunto de resultados predeterminado. SQLExecDirect o SQLExecute devuelven SQL_SUCCESS_WITH_INFO y una llamada a SQLGetDiagRec devuelve:

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

Consulte también

Ejecución de instrucciones (ODBC)