Compartilhar via


Lotes de instruções

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Um lote de instruções Transact-SQL contém duas ou mais instruções, separadas por um ponto-e-vírgula (;), incorporado em uma única cadeia de caracteres 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 enviar instruções separadamente porque o tráfego de rede costuma ser reduzido. Use SQLMoreResults para ser posicionado no próximo conjunto de resultados quando terminar com o conjunto de resultados atual.

Os lotes sempre podem ser usados quando os atributos de cursor ODBC são definidos como os padrões de um cursor de somente encaminhamento, somente leitura, com um tamanho do conjunto de linhas igual a 1.

Se um lote for executado ao usar cursores de servidor no SQL Server, o cursor do servidor será convertido implicitamente em um conjunto de resultados padrão. 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."  

Confira também

Executnado instruções (ODBC)