sql >> Database >  >> RDS >> Sqlserver

wijzigingen aan een opgeslagen procedure ongedaan maken

Het antwoord is JA , u kunt terugkrijgen, maar het is niet gemakkelijk. Alle databases loggen elke wijziging daarin aangebracht. U moet:

  1. Sluit de server af (of zet hem in ieder geval in de alleen-lezen modus)
  2. Maak een volledige back-up van de server
  3. Krijg een kopie van alle db-logbestanden die teruggaan tot het moment waarop het ongeluk gebeurde
  4. Herstel de back-up op een andere server
  5. Gebruik db-beheertools om terug te gaan door de logbestanden totdat u het ongeval "ongedaan maakt"
  6. Bekijk de herstelde code in de opgeslagen procedure en codeer deze terug naar je huidige versie

En het allerbelangrijkste:HAAL UW OPGESLAGEN PROCEDURECODE ONDER BRONCONTROLE

Veel mensen begrijpen dit concept niet:u kunt alleen wijzigingen aanbrengen naar een database; je kunt de opgeslagen proc-versie niet terugdraaien zoals je kunt met applicatiecode door bestanden te vervangen door hun vorige versies. Om "terug te draaien", moet je meer . maken wijzigingen die uw opgeslagen proces laten vallen/definiëren.

Opmerking voor muggenzifters:met "terugdraaien" bedoel ik niet "terugdraaien van transacties". Ik bedoel, je hebt je wijzigingen aangebracht en besluit zodra de server weer in de lucht is dat de wijziging niet goed is.



  1. MySQL-weergaven:verwijzen naar een berekend veld (op naam) in een ander berekend veld

  2. HTML opslaan in MySQL-database

  3. Heeft SQLAlchemy een bool_and aggregatiefunctie?

  4. exporteert imdbpy2sql.py soundtracks naar mysql?