Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Há uma diferença importante entre transações iniciadas em procedimentos armazenados Transact-SQL e transações iniciadas em código gerenciado: o código CLR (Common Language Runtime) não pode desequilibrar o estado da transação na entrada ou saída de uma chamada CLR. Esteja ciente das seguintes implicações desta diferença:
Uma transação iniciada dentro de um quadro CLR deve ser confirmada ou revertida, caso contrário, o SQL Server gera um erro quando o quadro é encerrado.
Uma transação externa não pode ser confirmada ou revertida dentro do código CLR.
Uma tentativa de confirmar uma transação não iniciada no mesmo procedimento causa um erro em tempo de execução.
Uma tentativa de reverter uma transação não iniciada no mesmo procedimento faz com que a transação pare de responder (impedindo que qualquer outra operação de efeito colateral aconteça). A transação é descontinuada até que o código CLR saia do escopo. Esse comportamento pode ser útil quando você deteta um erro dentro do procedimento e deseja garantir que toda a transação seja encerrada.