Fórum Para que servem o rollback e o commit? #570703
09/11/2016
0
sempre no SQL, usei as queries para fazer o que preciso. Fiz uso do CRUD sempre quando precisei
Nunca tive tanto interesse em ver uma maneira de otimizar minhas queries, pois as mesmas já me atendiam.
Queria saber se o rollback e o commit poderiam me ajudar em alguma coisa.
Tiago Dias
Curtir tópico
+ 0Post mais votado
09/11/2016
Um exemplo: Se vou fazer um update na tabela cliente em um único registro, não necessita abrir transação no banco, pois isto o SQL faz automaticamente. Agora supondo que você terá que trabalhar com mais de uma tabela, como por exemplo, você vai atualizar um pedido e já na sequência você precisa atualizar o estoque, ai sim você precisa de abrir uma transação, pois se der erro na atualização do pedido, o SQL volta todas as alterações feitas anteriormente ao seu estado anterior.
Otimização de "queries" vai muito além de criar transações, pois estas travam as páginas de dados, então muito cuidado ao mexer com transações. O bom seria você revisar seus índices e medir a performance da "querie" executada e ai sim identificar melhorias na mesma.
Fabio Parreira
Gostei + 2
Mais Posts
09/11/2016
Ricardo Araujo
O uso Rollback :
Server para quando você estiver fazendo uma Inclusão no seu Sistema e no decorrer deste processo deu alguma coisa errada, neste caso o processo, não realizar a inclusão dos dados.
O Uso Commit :
Neste caso quando esta realizando uma Inclusão no seu Sistema, e o processo percorre normalmente sem nenhum erro, isto quer dizer quer dizer que o commit ira persistir os dados.
Gostei + 1
10/11/2016
Tiago Dias
Então se eu usar uma query minha e após ela usar o rollbak, irá reverter o processo?
Gostei + 0
11/11/2016
Fabio Parreira
Geralmente eu deixo minhas queries estruturadas assim:
DECLARE @ERRO AS VARCHAR(MAX)
DECLARE @ERRO AS VARCHAR(MAX)
BEGIN
BEGIN TRY
BEGIN TRANSACTION
BEGIN
--TODO CÓDIGO VAI AQUI DENTRO
END
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
SET @ERRO = ERROR_MESSAGE()
RAISERROR(@ERRO,16,1)
END CATCH
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)