Usuário com melhor resposta
Retornar linha excluída no SQL SERVER 2005

Pergunta
-
Respostas
-
Se o registro existir no backup full que você tem, você restaura o banco em outro lugar ou na mesma instancia com outro nome e depois fazer o insert dos dados, o registro deletado não tem como voltar se não pelo backup.
Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 29 de maio de 2016 01:21
-
Ajuda,
Uma possibilidade como você tem o backup do seu banco de dados é utilizar o Select abaixo, para identificar as linhas que foram excluídas:
SELECT [Current LSN], [Transaction ID], Operation, Context, AllocUnitName FROM fn_dblog(NULL, NULL) WHERE Operation = 'LOP_DELETE_ROWS'
Após identificar, este outro select vai permitir buscar exatamente a linha desejada:
SELECT [Current LSN], Operation, [Transaction ID], [Begin Time], [Transaction Name], [Transaction SID] FROM fn_dblog(NULL, NULL) WHERE [Transaction ID] = '0000:0000055e' -- aqui você vai informar o id da transação que representa a linha deseja AND [Operation] = 'LOP_BEGIN_XACT'
Agora você vai poder fazer a restauração do seu banco de dados com base no número do Log Sequence Number - LSN, veja os exemplos abaixo:
--Restoring Full backup with norecovery. RESTORE DATABASE ReadingDBLog_COPY FROM DISK = 'C:\ReadingDBLog_FULL_15JAN2014.bak' WITH MOVE 'ReadingDBlog' TO 'C:\ReadingDBLog.mdf', MOVE 'ReadingDBlog_log' TO 'C:\ReadingDBLog_log.ldf', REPLACE, NORECOVERY; GO --Restore Log backup with STOPBEFOREMARK option to recover exact LSN. RESTORE LOG ReadingDBLog_COPY FROM DISK = N'C:\ReadingDBlog_tlogbackup_15thJan610.trn' WITH STOPBEFOREMARK = 'lsn:22000000042100001'
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 29 de maio de 2016 01:21
Todas as Respostas
-
Bom dia,
Cara você só consegue voltar com a linha se vc tiver um backup full e aplicar os logs até o momento que você fez a exclusão dos dados.
Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net
-
-
Se o registro existir no backup full que você tem, você restaura o banco em outro lugar ou na mesma instancia com outro nome e depois fazer o insert dos dados, o registro deletado não tem como voltar se não pelo backup.
Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 29 de maio de 2016 01:21
-
-
Ajuda,
Uma possibilidade como você tem o backup do seu banco de dados é utilizar o Select abaixo, para identificar as linhas que foram excluídas:
SELECT [Current LSN], [Transaction ID], Operation, Context, AllocUnitName FROM fn_dblog(NULL, NULL) WHERE Operation = 'LOP_DELETE_ROWS'
Após identificar, este outro select vai permitir buscar exatamente a linha desejada:
SELECT [Current LSN], Operation, [Transaction ID], [Begin Time], [Transaction Name], [Transaction SID] FROM fn_dblog(NULL, NULL) WHERE [Transaction ID] = '0000:0000055e' -- aqui você vai informar o id da transação que representa a linha deseja AND [Operation] = 'LOP_BEGIN_XACT'
Agora você vai poder fazer a restauração do seu banco de dados com base no número do Log Sequence Number - LSN, veja os exemplos abaixo:
--Restoring Full backup with norecovery. RESTORE DATABASE ReadingDBLog_COPY FROM DISK = 'C:\ReadingDBLog_FULL_15JAN2014.bak' WITH MOVE 'ReadingDBlog' TO 'C:\ReadingDBLog.mdf', MOVE 'ReadingDBlog_log' TO 'C:\ReadingDBLog_log.ldf', REPLACE, NORECOVERY; GO --Restore Log backup with STOPBEFOREMARK option to recover exact LSN. RESTORE LOG ReadingDBLog_COPY FROM DISK = N'C:\ReadingDBlog_tlogbackup_15thJan610.trn' WITH STOPBEFOREMARK = 'lsn:22000000042100001'
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 29 de maio de 2016 01:21
-