La réponse est OUI , vous pouvez le récupérer, mais ce n'est pas facile. Toutes les bases de données enregistrent chaque modification qui lui a été apportée. Vous devez :
- Éteignez le serveur (ou au moins mettez-le en mode lecture seule)
- Effectuez une sauvegarde complète du serveur
- Obtenir une copie de tous les fichiers journaux de la base de données remontant jusqu'au moment où l'accident s'est produit
- Restaurer la sauvegarde sur un autre serveur
- À l'aide des outils d'administration de la base de données, revenez en arrière dans les fichiers journaux jusqu'à ce que vous "annuliez" l'accident
- Examinez le code restauré dans la procédure stockée et réencodez-le dans votre version actuelle
Et le plus important :OBTENEZ VOTRE CODE DE PROCÉDURE STOCKÉ SOUS LE CONTRÔLE DE LA SOURCE
Beaucoup de gens ne comprennent pas ce concept :vous ne pouvez que apporter des modifications à une base de données ; vous ne pouvez pas restaurer la version proc stockée comme vous le pouvez avec le code d'application en remplaçant les fichiers par leurs versions précédentes. Pour "revenir en arrière", vous devez faire plus changements qui suppriment/définissent votre proc stocké.
Note aux tatillons :par "roll back", je ne veux pas dire "transaction roll back". Je veux dire que vous avez apporté vos modifications et décidez une fois que le serveur est de retour que le changement n'est pas bon.