Escolhendo quando fazer commit ou rollback de uma transação
O banco onde você trabalha decidiu dar US\( 100 para as contas com menos de US\) 5.000. No entanto, a diretoria do banco só quer liberar esse dinheiro se não houver mais de 200 contas com menos de US$ 5.000.
Você prepara um script para conceder esses US\( 100 e, entre as várias maneiras de fazer isso, decide abrir uma transação e, em seguida, atualizar cada conta com saldo inferior a US\) 5.000. Depois, você verifica o número de linhas afetadas pela atualização usando a função @@ROWCOUNT. Se esse número for maior que 200, você faz rollback da transação. Caso contrário, você faz commit.
Como você prepara esse script?
Este exercício faz parte do curso
Transações e tratamento de erros no SQL Server
Instruções do exercício
- Inicie a transação.
- Verifique se o número de linhas afetadas é maior que 200.
- Faça rollback da transação se o número de linhas afetadas for maior que 200.
- Faça commit da transação se o número de linhas afetadas for menor ou igual a 200.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- Begin the transaction
___ ___;
UPDATE accounts set current_balance = current_balance + 100
WHERE current_balance < 5000;
-- Check number of affected rows
IF @@ROWCOUNT > ___
BEGIN
-- Rollback the transaction
___ ___;
SELECT 'More accounts than expected. Rolling back';
END
ELSE
BEGIN
-- Commit the transaction
___ ___;
SELECT 'Updates commited';
END