Olá pessoal,
Esta postagem de hoje tem o objetivo de mostrar um comando útil pra você limpar sua base de dados e colocar em produção (provavelmente).
Se você esta usando o SQL Server e se perguntar algumas questões como estas abaixo:
Como deletar todos os dados de todas as tabelas de uma vez?
Como apagar todos os registros de todas as tabelas da base de dados?
É possivel deletar todos os registros de todas as tabelas?
Aqui você pode encontrar uma alternativa.
Antes de iniciar, é bom explicar o processo que será seguido:
- desabilitar todas as constraints de todas as tabelas.
- deletar os dados.
- habilitar todas as constraints de todas as tabelas.
Para "zerar" os dados das nossas tabelas, vamos usar a dica de outro post, e vamos utilizar a procedure SP_MSFOREACHTABLE.
Veja a postagem : #QuickTip 4 - [SQL Server] Como executar um select count em todas as tabelas de uma base de dados
Atenção, cuidado ao usar o script abaixo!
Segue o script:
-
-
- EXEC SP_MSFOREACHTABLE 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
- GO
- EXEC SP_MSFOREACHTABLE '
- IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TABLEHASFOREIGNREF'') = 1
- DELETE FROM ?
- ELSE
- TRUNCATE TABLE ?'
- GO
-
- EXEC SP_MSFOREACHTABLE 'ALTER TABLE ? CHECK CONSTRAINT ALL'
- GO
-- Deletando todos os dados de todas a tabelas da base de dados
-- DESABILITA INTEGRIDADE REFERENCIAL
EXEC SP_MSFOREACHTABLE 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC SP_MSFOREACHTABLE '
IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TABLEHASFOREIGNREF'') = 1
DELETE FROM ?
ELSE
TRUNCATE TABLE ?'
GO
-- HABILITA INTEGRIDADE REFERENCIAL
EXEC SP_MSFOREACHTABLE 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
É isso. 
Bons estudos!
Simplificando e desmitificando.
Até a próxima.
Bem-aventurado aquele servo a quem o seu senhor, quando vier, achar fazendo assim. (Lucas 12:43)
Tags: sql, sqlserver, SQL Server 2005, SP_MSFOREACHTABLE, delete, truncate