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

Como excluir todas as linhas de todas as tabelas em um banco de dados SQL Server?


Observe que TRUNCATE não funcionará se você tiver qualquer conjunto de integridade referencial.

Nesse caso, isso funcionará:
EXEC sp_MSForEachTable 'DISABLE TRIGGER ALL ON ?'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'SET QUOTED_IDENTIFIER ON; DELETE FROM ?'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ENABLE TRIGGER ALL ON ?'
GO

Editar:Para ser claro, o ? nas declarações é um ? . Ele é substituído pelo nome da tabela pelo sp_MSForEachTable procedimento.