Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

annullare le modifiche a una procedura memorizzata

La risposta è SI , puoi recuperarlo, ma non è facile. Tutti i database registrano ogni modifica apportata ad esso. Devi:

  1. Chiudi il server (o almeno mettilo in modalità di sola lettura)
  2. Esegui un backup completo del server
  3. Ricevi una copia di tutti i file di registro db risalenti a prima dell'incidente
  4. Ripristina il backup su un altro server
  5. Utilizzando gli strumenti di amministrazione db, torna indietro nei file di registro finché non "annulla" l'incidente
  6. Esamina il codice ripristinato nel processo memorizzato e codificalo nuovamente nella versione corrente

E soprattutto:OTTIENI IL TUO CODICE DI PROCEDURA MEMORIZZATO SOTTO IL CONTROLLO DELLA SORGENTE

Molte persone non accettano questo concetto:puoi solo apportare modifiche a un database; non è possibile ripristinare la versione proc archiviata come è possibile con il codice dell'applicazione sostituendo i file con le versioni precedenti. Per "arretrare", devi fare di più modifiche che eliminano/definiscono il processo memorizzato.

Nota per i pignoli:per "rollback" non intendo "rollback della transazione". Voglio dire che hai apportato le modifiche e, una volta eseguito il backup del server, decidi che la modifica non va bene.