Rollback e SavePoint em SQL:uma distinção clara 
   Os comandos `rollback` e` savepoint` são os comandos SQL usados para gerenciar estados de transação, mas servem a propósitos diferentes.   
 reversão:   * 
 Objetivo: Redefina o banco de dados para um estado anterior, desfazendo todas as alterações feitas na transação atual. 
 * Escopo: Descarga tudo desde o início da transação. 
 * 
 Exemplo:   `` `SQL 
 - Inicie uma transação 
 Iniciar a transação;  
 - Insira alguns dados 
 Insira nos clientes (nome, email) valores ('John Doe', '
[email protected]'); 
 Inserir em pedidos (valores do cliente, o pedido) (1, '2023-10-27');  
 - Rollback todas as mudanças feitas na transação 
 Transação de reversão;  
 - Agora, o banco de dados está de volta ao seu estado antes do início da transação. 
 `` `   
 SavePoint:   * 
 Objetivo: Marca um ponto específico dentro de uma transação para possíveis reversão. 
 * Escopo: Permite reverter apenas para o SavePoint definido, preservando as alterações feitas após ele. 
 * 
 Exemplo:   `` `SQL 
 - Inicie uma transação 
 Iniciar a transação;  
 - Insira alguns dados 
 Insira nos clientes (nome, email) valores ('Jane Doe', '
[email protected]');  
 - Crie um SavePoint 
 SavePoint MySavePoint;  
 - Insira mais dados 
 Inserir em pedidos (valores do cliente, o pedido) (2, '2023-10-28');  
 - Rollback para o SavePoint 
 Transação de reversão para MySavePoint;  
 - Agora, o banco de dados estará de volta ao seu estado após a primeira inserção, mantendo o pedido feito após o SavePoint. 
 `` `   
 Resumo:   | Recurso | Reversão | SalvePoint | 
 | --- | --- | --- | 
 | 
 propósito  | Descanse todas as mudanças na transação atual | Reversão para um ponto específico dentro da transação | 
 | 
 escopo  | Transação inteira | Ponto específico | 
 | 
 resultado  | O banco de dados reverte ao seu estado antes da transação | O banco de dados reverte para o estado no SavePoint |   
 Diferenças -chave:   * `Rollback` sem um SavePoint desfaz todas as alterações na transação. 
 * `Rollback` com um SavePoint reverte o banco de dados para o estado no SavePoint, descartando as alterações feitas após ele.   
 Quando usar qual:   * 
 reversão: Use quando você deseja descartar todas as alterações em uma transação, normalmente devido a erros ou inconsistências de dados. 
 * 
 SavePoint: Use quando você deseja reverter um estado específico dentro de uma transação, preservando as alterações feitas após o SavePoint. Isso é útil para operações complexas nas quais você precisa desfazer partes específicas da transação sem afetar todo o processo.