sql >> Base de Datos >  >> RDS >> Sqlserver

deshacer cambios en un procedimiento almacenado

La respuesta es SI , usted puede recuperarlo, pero no es fácil. Todas las bases de datos registran cada cambio que se le hizo. Necesitas:

  1. Apague el servidor (o al menos póngalo en modo de solo lectura)
  2. Realice una copia de seguridad completa del servidor
  3. Obtenga una copia de todos los archivos de registro de db desde antes de que ocurriera el accidente
  4. Restaurar la copia de seguridad en otro servidor
  5. Usando las herramientas de administración de db, retroceda a través de los archivos de registro hasta que "deshaga" el accidente
  6. Examine el código restaurado en el proceso almacenado y vuelva a codificarlo en su versión actual

Y lo más importante:OBTENGA SU CÓDIGO DE PROCEDIMIENTO ALMACENADO BAJO CONTROL DE FUENTE

Muchas personas no asimilan este concepto:solo puedes hacer cambios a una base de datos; no puede revertir la versión del proceso almacenado como puede hacerlo con el código de la aplicación al reemplazar los archivos con sus versiones anteriores. Para "retroceder", debe hacer más cambios que descartan/definen su proceso almacenado.

Nota para los quisquillosos:por "retroceder" no me refiero a "retroceder la transacción". Me refiero a que ha realizado sus cambios y decide una vez que el servidor está respaldado que el cambio no es bueno.