Lotes de Declarações

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse Analytics

Um lote de instruções Transact-SQL contém duas ou mais sentenças, separadas por um ponto e vírgula (;), incorporadas numa única cadeia passada para SQLExecDirect ou SQLPrepare Function. Por exemplo:

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

Os lotes podem ser mais eficientes do que submeter instruções separadamente porque o tráfego de rede é frequentemente reduzido. Use SQLMoreResults para se posicionar no próximo conjunto de resultados quando terminar com o conjunto atual.

Os lotes podem sempre ser usados quando os atributos do cursor ODBC estão definidos para os valores predefinidos de um cursor apenas avançado, só de leitura, com um conjunto de linhas de 1.

Se um lote for executado ao usar cursores de servidor contra o SQL Server, o cursor de servidor é implicitamente convertido para um conjunto de resultados predefinido. SQLExecDirect ou SQLExecute retornam SQL_SUCCESS_WITH_INFO, e uma chamada para SQLGetDiagRec retorna:

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