Apaga tudo copiado em SQL

1

Eu gostaria de executar um backup de um banco de dados SQL (MSSQL) e, em seguida, excluir tudo o que foi incluído nesse backup, essencialmente uma limpeza dos dados de backup, com a intenção de arquivá-lo em um determinado momento. / p>

A estrutura do banco de dados é simples, apenas seis tabelas, com apenas FKs implícitas. O pensamento original era, talvez, pegar o PK máximo de todas as tabelas em variáveis, fazer backup e, em seguida, excluir onde PK < = a captura de pré-backup.

Isso obviamente não faz o que eu quero se uma inserção ocorrer entre pegar e deletar (backup no meio)

E, como não consigo realizar um backup em uma transação….

A única maneira que consegui criar com segurança é fazer o backup, restaurar temporariamente como um nome diferente, definir minhas variáveis a partir dos dados de backup e, em seguida, voltar ao banco de dados original para excluir. Claro que parece ser um longo caminho para chegar ao que parece ser uma tarefa simples.

    
por Sabre 06.01.2012 / 02:53

1 resposta

1

Faça um instantâneo do DB e, em seguida, pare-o e compare e contraste o instantâneo e o banco de dados atual.

Tendo dito isso - sem verificar o backup com uma restauração, como você pode garantir que o backup funcionou.

EDIT: Após comentário:

Se você tem apenas 6 tabelas, por que não fazer um SELECT INTO BACKUP para um DB TEMPORÁRIO - e fazer o backup? Ordenar o seu próprio instantâneo.

    
por 06.01.2012 / 03:01

Tags