3
respostas

Update Acidental

Olá, sem querer fiz um update com os Set do desafio proposto só que dei Run na consulta sem a claúsula WHERE e modificou toda tabela de clientes com os mesmos dados... verifiquei a parte de restaurar os dados do BD mas não tinha arquivo de Backup salvo, teria alguma forma de eu reverter o Update da tabela Clientes.

3 respostas

Oi, Arthur! Tudo bem por aí?

Para desfazer uma ação, você pode usar o ROLLBACK. Contudo, para ele ser realizado, você precisa ter feito um BEGIN TRANSACTION antes. O BEGIN TRANSACTION vai demarcar o ponto em que o banco de dados está (como se fosse um checkpoint) e o ROLLBACK desfaz tudo que aconteceu desde o momento em que você colocou o BEGIN TRANSACTION.

Na mesma aula (alguns vídeos depois), você irá aprender mais a fundo sobre esses comandos. No momento, algo que pode ser mais tranquilo para voltar ao ponto em que você estava, é refazer os dados de endereço dos clientes.

Para isso, você pode deletar a tabela CLIENTES com um

DROP TABLE CLIENTES

E após ter deletado a tabela, você pode resgatar o banco de dados da tabela CLIENTE do mesmo modo que você fez na atividade 04. Desafio: incluindo registros a partir de outra tabela. Lembrando que é necessário recriar os campos que tínhamos anteriormente antes de inserir os dados

Para inserir os dados na tabela novamente criada, use este comando:


INSERT INTO CLIENTES
SELECT CPF, NOME, ENDERECO_1 AS ENDERECO, BAIRRO, CIDADE, ESTADO, CEP, 
DATA_DE_NASCIMENTO AS DATA_NASCIMENTO, IDADE, 
GENERO, LIMITE_DE_CREDITO AS LIMITE_CREDITO, VOLUME_DE_COMPRA AS VOLUME_COMPRA, PRIMEIRA_COMPRA
FROM SUCOS_FRUTAS.DBO.TABELA_DE_CLIENTES;

Se a dúvida persistir, estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Então eu tentei já fazer isso mas apareceu o seguinte erro: Mensagem 3726, Nível 16, Estado 1, Linha 1 Não foi possível descartar o objeto 'CLIENTE' porque há referência a ele em uma restrição FOREIGN KEY.

Oii, Arthur!

Isso significa que a PK da tabela CLIENTE está sendo utilizada como FK em outra tabela.

Você pode excluir a FK da outra tabela, caso necessário. Porém, é importante lembrar de recolocá-la na tabela depois de ter excluído e feito o processo da criação da tabela CLIENTE novamente.

Para excluir a FK (ela está na TABELA_DE_VENDAS), basta você:

  • Estar no Pesquisador de Objetos;
  • Abrir a aba do [VENDAS SUCOS];
  • Ir nas Tabelas;
  • Procurar a TABELA_DE_VENDAS;
  • Abrir a aba de Chaves.

Ao ver a chave que faz referência à tabela CLIENTE, você pode clicar com o lado direito do mouse e ir na opção Excluir para deletá-la.

Novamente, após ter deletado a FK e ter recriado a tabela por inteiro, lembre-se de adicionar a FK como estava antes.

Espero que isso ajude.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.