web-dev-qa-db-fra.com

Rollback Transaction engagée dans SQL Server

Est-il possible de rentabiliser une transaction engagée?

J'ai supprimé toutes les données d'une table. L'instruction DELETE est à l'intérieur de la transaction de début et j'ai commis la transaction avec une commande de validation de transaction. Est-il possible de rentabiliser et de récupérer les données?

4
user69701

Non. Les transactions engagées modifient le contenu des tables de base de données d'abord dans le journal des transactions, puis dans les fichiers de données. À moins que des déclencheurs ou d'autres techniques soient explicitement configurés à l'envers, il n'est pas moyen de récupérer les valeurs stockées dans la base de données avant que la transaction ne soit commise.

Pour ce faire, vous devez restaurer une copie de la base de données avant la fin de la transaction.

D'autres techniques reposent sur la reconstruction des données de lecture du journal des transactions, mais je ne les recommandes pas: la restauration d'une copie de la base de données est beaucoup plus facile (et prise en charge).

3
spaghettidba