Transações explícitas

Uma transação explícita é aquela para a qual você define o início e término da transação explicitamente.

Os aplicativos DB-Library e scripts Transact-SQL usam as instruções BEGIN TRANSACTION, COMMIT TRANSACTION, COMMIT WORK, ROLLBACK TRANSACTION ou ROLLBACK WORK Transact-SQL para definir transações explícitas.

  • BEGIN TRANSACTION
    Marca o ponto inicial de uma transação explícita para uma conexão.

  • COMMIT TRANSACTION ou COMMIT WORK
    Usadas para encerrar uma transação com êxito se nenhum erro for encontrado. Todas as modificações de dados realizadas na transação tornaram-se uma parte permanente do banco de dados. Os recursos mantidos pela transação são liberados.

  • ROLLBACK TRANSACTION ou ROLLBACK WORK
    Usado para apagar uma transação na qual são encontrados erros. Todos os dados modificados pela transação retornam ao estado em que estavam no início da transação. Os recursos mantidos pela transação são liberados.

Você também pode usar transações explícitas no OLE DB. Chame o método ITransactionLocal::StartTransaction para iniciar uma transação explícita. Chame o método ITransaction::Commit ou ITransaction::Abort com fRetaining definido como FALSE para terminar a transação, sem iniciar outra transação automaticamente.

No ADO, use o método BeginTrans em um objeto Connection para iniciar uma transação explícita. Para terminar a transação, chame os métodos CommitTran ou RollbackTrans do objeto Connection.

No provedor gerenciado ADO.NET SqlClient, use o método BeginTransaction em um objeto SqlConnection para iniciar uma transação explícita. Para terminar a transação, chame os métodos Commit() ou Rollback() no objeto SqlTransaction.

A API de ODBC não oferece suporte para transações explícitas, apenas para autocommit e transações implícitas.

O modo de transação explícito permanece apenas no período de duração da transação. Quando a transação terminar, a conexão volta ao modo de transação em que estava antes de a transação explícita ser iniciada, implícito ou modo de confirmação automática.

ObservaçãoObservação

Em uma sessão com vários conjuntos de resultados ativos (MARS), uma transação explícita iniciada com a instrução Transact-SQL BEGIN TRANSACTION se torna uma transação no escopo do lote. Se a transação com escopo de lote não for confirmada ou revertida quando o lote for concluído, o SQL Server reverterá automaticamente a transação. Para obter mais informações, consulte Controlando transações (Mecanismo de Banco de Dados) e Instruções de transação (Transact-SQL).