none
Como restaurar registros apagados acidentalmente de uma tabela RRS feed

  • Pergunta

  • Ai pessoal,

    fui deletar os registros de uma tabela só que eu confundi o nome da tabela na hora  e deletei registro de outra tabela.

    Tem como fazer um RollBack e restaurar os registros dessa tabela ?

    Alguém pode me passar a sintaxe para fazer isto.

    Vlws

    quarta-feira, 25 de junho de 2008 17:24

Todas as Respostas

  • Boa Tarde,

     

    Para fazer isso só com o SQL Server você deve atender as seguintes condições:

     

    - Ter um backup full anterior ao problema

    - O Recovery Model do banco deve ser full

    - O log não deve ter sido truncado após o backup full

     

    Às vezes com o backup full, você já pode ter os registros necessários (basta fazer um SELECT comparando as tabelas).

     

    Se essas condições não forem atendidas, você terá que procurar uma ferramenta para ler o log como o Log Explorer para ler o log e reinserir os registros.

     

    Se estiver usando o SQL Server 2005, antes de fazer alterações em produção é sempre importante criar um SNAPSHOT de segurança.

     

    [ ]s,

     

    Gustavo

     

    quarta-feira, 25 de junho de 2008 17:34
  • Hum...  

    Percebi que não é tão simples quanto imaginei.

    Não sei se é uma particularidade do Sql Server, mas tanto o Sql Server 2000  como o Sql 2005 por default, não é preciso dar um COMMITE após alguma alteração no banco. Por isso pensei que durante a mesma seção seria fácil realizar um rollback restaurando o banco ao estado anterior à ultima modificação.

     

    Como nem sempre é de costume fazer um backup full toda vez antes de realizar alguma alteração no banco me parece mais pratico criar um SNAPSHOT pois, pelo que sei  é a crianção de um SNAPSHOT  é bastante rápida mesmo em um banco muito grande.  Estou certo ??

     

    Como atualizar o snapshot para que ele receba as alterações efetuados no banco apos sua criação?

    Se eu criar um snapshot e logo após executar o mesmo código usado na criação desse snapshot,  é criado um novo snapshot sobrescrevendo o anterior, ou é preciso deletar e cria-lo novamente se quiser manter o mesmo nome?

    Como restaurar o banco original apartir de um snapshot?

     

     

    quinta-feira, 26 de junho de 2008 12:18