SET XACT_ABORT

SET XACT_ABORT é o que podemos dizer de um das jóias escondidas. Ela é útil em muitos aspectos.

Deixe-me explicar com um exemplo, suponha que você está trabalhando em um procedimento armazenado, que está fazendo uma manipulação de dados complexos. Você espera que esta consulta que seja executada em 1 minuto, quando você executá-la a partir do código .NET ou outra, mas ao testa-la percebe que demorou bastante tempo e a consulta levantou um tempo limite de comando.

Ou podemos dizer que sua transação aplicada no procedimento armazenado e chamando a partir do código .NET também acionou o tempo limite de comando no programa ADO.NET .NET . Levantou um tempo limite, mas ainda a sua consulta está sendo executado em segundo plano.

Agora, em tal situação, por vezes, isso aconteceu a transação que está sendo executado no SQL SERVER acaba se tornando uma transação aberta, o que pode ser causa de problema de bloqueio.

Em tal situação opção XACT_ABORT é útil.

Por padrão opção XACT_ABORT está desabilitado. Podemos mudar com a seguinte declaração:

SET XACT_ABORT ON;

Agora, quando esta declaração está habilitada e se você enfrentar mesma situação, como mencionado acima, será revertido todo o lote.

Deixe-me explicar com exemplo a seguir

Suponha que eu escrevi seguinte declaração “XACT ABORT é OFF”

imagem

Agora, quando eu executar as declarações acima vou conseguir seguinte resultado:

imagem

E na janela de mensagem encontraremos o seguinte resultado:

imagem

O que isso significa que, em vez de o erro, pelo menos, três registros são inseridos, mas às vezes é necessário ter todos ou nenhum registro comitado na tabela.

Em seguida, deixe-me ative a opção XACT_ABORT ON na consulta

imagem

Agora, deixe-me re executar as instruções novamente. Quando eu executo as afirmações acima eu tenho seguinte resultado na guia mensagem:

imagem

Isso significa que ele fez rollback na transação assim que obteve o erro, sendo assim não inserindo os registros.

Embora o exemplo acima não é o melhor exemplo de xact_abort mas vai ajudar a entender como usá-lo.

Obrigado

Marcado com: , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Publicado em Administração SQL, Desenvolvimento, SQL SERVER

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Arquivos
Follow SQL DATA BLOG on WordPress.com
%d blogueiros gostam disto: