Отговорът еДА , вие можете върнете го, но не е лесно. Всички бази данни регистрират всеки направена промяна в него. Трябва да:
- Изключете сървъра (или поне го поставете в режим само за четене)
- Направете пълно резервно копие на сървъра
- Вземете копие на всички db регистрационни файлове, връщайки се към преди, когато се е случил инцидентът
- Възстановете резервното копие на друг сървър
- Използвайки инструменти за администриране на db, превъртете се назад през регистрационните файлове, докато „отмените“ инцидента
- Разгледайте възстановения код в съхранената процедура и го кодирайте обратно във вашата текуща версия
И най-важното:ВЗЕМЕТЕ ВАШИЯ СЪХРАНЕН ПРОЦЕДУРЕН КОД ПОД КОНТРОЛ НА ИЗТОЧНИКА
Много хора не разбират тази концепция:можете само да правите промени към база данни; не можете да върнете съхранената версия на proc, както можете с кода на приложението, като замените файловете с предишните им версии. За да се „върнете назад“, трябва да направите още промени, които премахват/дефинират съхранената ви процедура.
Бележка към придирчиите:Под „връщане назад“ нямам предвид „връщане на транзакция“. Искам да кажа, че сте направили промените си и сте решили, след като сървърът се архивира, че промяната не е добра.