Material
  • Material de Banco de Dados
  • Introdução
    • Bancos de Dados
    • Relacional Versus Não Relacional
    • SQL e NoSQL (Não SQL)
    • ACID, CAP e BASE
  • Fundamentos
    • Abstração
    • Modelos de Dados
    • MER e DER
    • Cardinalidades
    • Formas Normais
    • Propriedades ACID
    • Álgebra Relacional
      • Portal para praticar
      • Script para criar o banco de dados
      • Exercício
      • Respostas - Álgebra Relacional
  • Linguagem SQL
    • Linguagens de Banco de Dados
    • CREATE
    • INSERT
    • UPDATE
    • DELETE
    • SELECT
    • VIEW
    • FUNÇÕES
    • PROCEDURES
    • CURSORES
    • TRANSAÇÕES
    • TRIGGERS
    • INDICES
    • CTE
  • Exercícios SQL
    • EXERCÍCIOS Parte 1
    • EXERCÍCIOS Parte 2
    • EXERCÍCIOS Parte 3
    • EXERCÍCIOS Procedure
    • EXERCÍCIOS Procedure - Resolução
  • Tópicos Avançados
    • Novas Tecnologias de armazenamento de dados
      • NoSQL
      • CAP e BASE
      • Big Data
    • Arquiteto de Dados
    • Engenheiro de Dados
    • Cientista de Dados
  • Extras
    • Download SQL Server 2017 e SSMS
    • Instalar SQL Server 2017
    • Instalar SSMS
    • Documentação dos SGBD
  • Canal no Youtube
Powered by GitBook
On this page
  1. Linguagem SQL

TRANSAÇÕES

  • Comando utilizado para alterar registros em um banco de dados. Antes de executar qualquer comando UPDATE, procure se informar sobre transações (será abordado mais pra frente).

  • Sempre que for trabalhar com o comando UPDATE ou DELETE, procure executar um SELECTantes para validar se os registros que serão afetados, são exatamente aqueles que você deseja.

BEGIN TRAN --> Inicia a transação

UPDATE dbo.CartaoCredito SET CartaoLimite = CartaoLimite * 1.1

COMMIT --> Finaliza a transação

--OR

ROLLBACK --> Desfaz a transação

Execute primeiro sem o WHERE e verifique que nenhuma linha será alterada. Depois remova o comentário e verá que apenas uma linha foi alterada.

BEGIN TRAN

UPDATE dbo.CartaoCredito SET CartaoLimite = CartaoLimite * 1.1
--WHERE ClienteCodigo = '12'

IF (@@ROWCOUNT > 1 OR @@ERROR > 0)

  ROLLBACK

ELSE

  COMMIT

Try Catch

BEGIN TRY

  SELECT 1/0

END TRY

BEGIN CATCH
  SELECT
      ERROR_NUMBER() AS ErrorNumber,
      ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
PreviousCURSORESNextTRIGGERS

Last updated 2 years ago