Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

desfazer alterações em um procedimento armazenado


A resposta é SIM , você pode recuperá-lo, mas não é fácil. Todos os bancos de dados registram todos alteração feita nele. Você precisa:
  1. Encerre o servidor (ou pelo menos coloque-o no modo somente leitura)
  2. Faça um backup completo do servidor
  3. Receba uma cópia de todos os arquivos de log do banco de dados anteriores a quando o acidente aconteceu
  4. Restaure o backup em outro servidor
  5. Usando as ferramentas de administração do banco de dados, reverta os arquivos de log até "desfazer" o acidente
  6. Examine o código restaurado no proc armazenado e codifique-o de volta em sua versão atual

E o mais importante:OBTENHA SEU CÓDIGO DE PROCEDIMENTO ARMAZENADO SOB CONTROLE DE FONTE

Muitas pessoas não entendem esse conceito:você só pode fazer alterações para um banco de dados; você não pode reverter a versão do proc armazenado como você pode com o código do aplicativo, substituindo os arquivos por suas versões anteriores. Para "reverter", você deve fazer mais alterações que descartam/definem seu proc armazenado.

Nota aos nitpickers:Por "reversão" não quero dizer "reversão de transação". Quero dizer, você fez suas alterações e decide uma vez que o servidor está de volta que a mudança não é boa.