Compartir por


Lotes de instrucciones

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

Un lote de instrucciones Transact-SQL contiene dos o más instrucciones, separadas por punto y coma (;), integradas en una sola cadena pasada a SQLExecDirect o a la función SQLPrepare. 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)