Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come eliminare tutte le righe da tutte le tabelle in un database di SQL Server?

Tieni presente che TRUNCATE non funzionerà se hai impostato l'integrità referenziale.

In tal caso, questo funzionerà:

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

Modifica:per essere chiari, il ? nelle istruzioni è un ? . Viene sostituito con il nome della tabella da sp_MSForEachTable procedura.