Tags

,

Olá pessoal!

Hoje o assunto é sobre transações no Microsoft SQL Server, onde você saberá para que serve e quando utilizar.

Toda transação de UPDATE, DELETE e até de INSERT você pode garantir que o dado volte ao ponto anterior antes de ser alterado, excluído ou que também não seja inserido, utilizando no inicio de sua query(Script) o comando BEGIN TRANSACTION ou apenas BEGIN TRAN.

Esse comando tem a utilidade de preparar o SQL Server para um ponto de restauração do dado(s), caso seja necessário.

Se for necessário retornar o dado no estado anterior, pode utilizar o comando ROLLBACK TRANSACTION ou apenas ROLLBACK. Mas, caso você precisa garantir que o dado inserido, atualizado ou deletado seja confirmado, basta utilizar o comando COMMIT TRANSACTION ou apenas COMMIT.

Abaixo um exemplo com os três comandos, veja:

BEGIN TRANSACTION

UPDATE Cliente SET DataAtualizacao = getdate() WHERE IdCliente = 1

IF@@ERROR <> 0

ROLLBACK TRANSACTION

ELSE

COMMIT TRANSACTION

Lembre-se, esses três comandos, podem evitar uma baita dor de cabeça em caso de acidente. Veja exemplo abaixo:

Você preparou sua linha de comando que fará uma atualização em 100 mil linhas, mas aí você esquece de colocar o comando WHERE (Essencial colocar), com isso você todo empolgado na pressa para terminar a tarefa e sair sorrindo, executa o comando, e logo percebe que em vez de atualizar a quantidade de 100, atualizou 700 mil linhas, o que fazer nessa hora? Se você tiver um backup da tabela antes de realizar as alterações devidas, muito bem, o trabalho de recuperação será mais rápido, senão, você terá que trabalhar mais para voltar os 700 mil registros ao estado anterior, isso por acidente, pense nisso em um ambiente que não se deve perder tempo com RETRABALHO?

Bom fica a dica sobre transações, vou preparar outro post para falar de SET IMPLICIT_TRANSACTION ON/OFF e SAVE TRANSACTION.

Espero ter ajudado.

Até mais…

Felippe Oliveira

Anúncios