Je n'ai un supprimer de la tablesql rollback transaction 2005
Comment puis-je rouler en arrière ou Undelete les lignes ??
Je n'ai un supprimer de la tablesql rollback transaction 2005
Comment puis-je rouler en arrière ou Undelete les lignes ??
si vous appelé begin transaction
avant vous, et n'ont pas encore appelé commit
, vous pouvez appeler rollback
, sinon ... vous allez devoir restaurer
restaurer à partir d'une sauvegarde.
si vous Préfacé la suppression d'un begin tran vous utilisez simplement rollback tran
sinon, commencez à chercher vos sauvegardes.
rollback;
Mais seulement si vous étiez dans une transaction ..
Je l'ai fait une fois sur une base de données sans sauvegarde et a été en mesure de récupérer les données en utilisant un utilitaire qui rejoue toutes les entrées du journal des transactions. Heureusement, dans ma situation, je n'avais jamais tronqué le journal des transactions.
Oh Snap. Btw, était-ce Lumigent? Je n'en ai pas vu d'autres mais si vous connaissez un bon gratuit ou pas cher que j'adorerais entendre à ce sujet? – Meff
Je ne me souviens pas, c'était une version d'essai de quelque chose de 2002. –
Cela fera l'affaire, en supposant que vous avez l'argent: http://www.lumigent.com/products/log_explorer.html
En dehors de cela, les sauvegardes, comme tout le monde dit
En 2002, je me souviens d'avoir utilisé quelque chose de similaire, mais la version d'essai me suffisait pour récupérer les données. –
En supposant que vous avez une sauvegarde complète récente de votre base de données, la sauvegarde de votre journal des transactions maintenant, et le restaurer à un moment donné avant votre suppression. Si des données en direct ont été modifiées depuis, vous souhaiterez probablement les restaurer dans une base de données différente et insérer manuellement les enregistrements supprimés.
De mémoire, alors la syntaxe peut être un peu hors - mais vous voyez l'idée:
BACKUP LOG DBName
TO DISK='C:\DBName.TRN'
GO
RESTORE DATABASE DBName2
FROM DISK='C:\DBName.BAK'
WITH
MOVE 'DBName.MDF' TO 'C:\DBName2.MDF',
MOVE 'DBName.LDF' TO 'C:\DBName2.LDF',
NORECOVERY
GO
RESTORE LOG DBName2
FROM DISK='C:\DBName.TRN'
WITH
RECOVERY,
STOPAT = '09/26/2008 17:00'
GO
Je ne suis pas sûr de votre syntaxe exacte car je n'ai jamais fait cela moi-même ... heureusement ... mais je pense que c'est certainement la bonne direction! – mattruma
Je pense que c'est la bonne réponse. Si l'affiche demande comment restaurer, il n'a probablement pas commencé à tran. – Cervo
Scott, je pense que vous devriez voir la réponse de Mark Brackett. Basé sur votre publication, vous n'avez probablement pas appelé Begin Transaction. Mais c'est la bonne réponse sur la façon de rouler quelque chose si vous avez commencé une transaction. – Cervo