[SQL Server] Script para deletar todos os registros de uma database
Publicado; 04/09/2012 Arquivado em: SQL Scripts | Tags: deletar registros, Script para deletar todos os registros, script sql server 6 ComentáriosSegue um script que me tem sido muito útil quando estou testando e desenvolvendo um novo projeto de banco de dados. Ele tem um único objetivo: excluir todos os registros de todas as tabelas de uma determinada base. Basta você alterar o comando USE, de modo a apontar para o banco que você deseja. Apenas um detalhe: este script considera apenas o uso do esquema DBO. Portanto, se sua base utiliza outros esquemas, além do DBO, então você precisará ajustar.
use DBTest
GO
SET NOCOUNT ON;
DECLARE @sql varchar(4000);
— 0 – Recuperar a lista de constraints
DECLARE @tbl Table ( tabela varchar(500), restricao varchar(500) );
— 1 – Desabilitar constraints
insert INTO @tbl
SELECT
t.name, k.name
FROM sys.foreign_keys k
JOIN sys.tables t ON k.parent_object_id = t.object_id;
WHILE (select count(*) from @tbl) > 0
begin
select top 1 @sql = ‘ALTER TABLE dbo.’ + t.tabela + ‘ nocheck constraint ‘ + t.restricao + ‘;’
from @tbl t;
delete TOP(1) FROM @tbl;
EXEC(@sql);
END;
— 2 – Truncar
EXEC sys.sp_MSforeachtable ‘DELETE FROM ?’;
— 3 – Reabilita as constraints
insert INTO @tbl
SELECT
t.name, k.name
FROM sys.foreign_keys k
JOIN sys.tables t ON k.parent_object_id = t.object_id;
WHILE (select count(*) from @tbl) > 0
begin
select top 1 @sql = ‘ALTER TABLE dbo.’ + t.tabela + ‘ check constraint ‘ + t.restricao + ‘;’
from @tbl t;
delete TOP(1) FROM @tbl;
–print @sql;
EXEC(@sql);
END;
Caraca velho, muito show isso aqui ein. Dá até pra adaptar ele para desabilitar constraints em um pacote do SSIS.
Fala Leonardo. É isso mesmo camarada: você pode usar para fazer os processos de ETL. Isso vai acelerar a importação.
poxa muito bom adeilson, estou criando um projeto e fiz varios testes e agora preciso limpar o BD. muito bom script.
Ha cara voce tem algum conhecimento sobre BI? to fazendo meu TCC sobre BI se vc tiver algo que possa me encaminhar ou até mesmo alguma indicação de livro.
Fala George,
Rapaz trabalho com esse negócio de BI (rs) no dia a dia. Vou ver um material pra vc e te passo depois. Em breve estarei abordando uma série de posts aqui no blog. Vai acompanhando.
vlw então brother!!!
[…] Vejam também: [SQL Server] Script para deletar todos os registros de uma database […]