Usuário com melhor resposta
Apagar todos os registros do banco

Pergunta
-
Respostas
-
-
Olá Cléber,
Acredito que a solução que postei seja útil para você.
1 - Gere os scripts de drop e create para todas as FKs
2 - Execute o script de drop das FKs
2 - Execute o select que passei acima
3 - Copie o resultado do select e execute no SSMS
4 - Execute o script de create das FKs
Abraços
-
Muito bem Demétrio, a lógica de remoção dos dados das tabela que o Cléber deseja está perfeita e pode ser feita da forma sugerida por vc.
Cléber, só lembro a vc que se vc desejar resetar os valores de identity's vc deve usar o truncate ao invés do delete.
Outra coisa, usando o delete, caso exista alguma falha no processo de delete em alguma tabela grande, isso irá gerar um rollback.
Uma sugestão que eu te dou para vc realizar esse procedimento rapidamente seria o seguinte:
1 - Gere um script de criação teu banco(SSMS), isso contemplará todos os objetos.
2 - renomei o seu database para alguma_coisa_old
ex:
Code Snippetexec sp_renamedb [seu_database], [seu_database_old]
3 - execute o script de criação do seu banco.
vai estar todo limpo....que maravilha!!!
Todas as Respostas
-
-
-
na verdade esse comando vai pegar as tabelas do banco e vai escrever "delete from" na frente. pegando essa informação, seria só rodar no servidor e ele iria deletar uma atrás da outra.o problema é se existirem relacionamentos entre as tabelas. seria um problema bem grande por isso tudo na ordem correta para deletar.
-
-
-
-
-
-
-
-
-
-
Olá Cléber,
Acredito que a solução que postei seja útil para você.
1 - Gere os scripts de drop e create para todas as FKs
2 - Execute o script de drop das FKs
2 - Execute o select que passei acima
3 - Copie o resultado do select e execute no SSMS
4 - Execute o script de create das FKs
Abraços
-
Muito bem Demétrio, a lógica de remoção dos dados das tabela que o Cléber deseja está perfeita e pode ser feita da forma sugerida por vc.
Cléber, só lembro a vc que se vc desejar resetar os valores de identity's vc deve usar o truncate ao invés do delete.
Outra coisa, usando o delete, caso exista alguma falha no processo de delete em alguma tabela grande, isso irá gerar um rollback.
Uma sugestão que eu te dou para vc realizar esse procedimento rapidamente seria o seguinte:
1 - Gere um script de criação teu banco(SSMS), isso contemplará todos os objetos.
2 - renomei o seu database para alguma_coisa_old
ex:
Code Snippetexec sp_renamedb [seu_database], [seu_database_old]
3 - execute o script de criação do seu banco.
vai estar todo limpo....que maravilha!!!
-
Olá Cléber,
Por hora a solução do Demétrio é a mais indicada. Além de boa, já está disponível para que você a aplique. Construirei uma alternativa um pouco mais automática, mas preciso de mais tempo. Não sei se você pode esperar. Independente de poder esperar ou não, postarei-a quando acabar.
[ ]s,
Gustavo
-
-
-
Olá Demétrio,
O grande problema na exclusão através de um DELETE com bases na sys.tables é estipular a ordem da exclusão. Para não se preocupar com a ordem, você bem disse que era necessário gerar o script das FKs, aplicar os deletes e recriá-las.
Se houvesse uma forma de estipular a ordem correta, não seria necessário o script e talvez até pudesse ser feito automaticamente. A metada do caminho eu já percorri. Possuo um script que revela a ordem correta das tabelas, mas esse script ainda não possui a situação de auto-referência. Assim que realizar o devido tratamento, o resto ficará bem fácil.
Mapeando dependências entre tabelas
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!177.entry
Logo que possível terminarei esse script e provavelmente essa tão comum necessidade virará uma entrada do blog. Só que acho que só depois do natal (rs).
[ ]s,
Gustavo
-
-
-
Caso alguém se interesse em uma rotina que gere os scripts de drop e create de costraints, segue link:
http://emanuelmcdba.spaces.live.com/blog/cns!E634CAFF4AFF243D!733.entry
A rotina gera os scritis de create e drop de costraints do tipo foreign key, visto que dos outros tipo de constraints é bem mais fácil.
Quando tiver um tempo irei colocar no meu blog um exemplo que gera os scripts de todos os tipo de constraints e outros objects do banco.
Agora irei me desligar.....
Um grande abraço a todos e FELIZ NATAL.