Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie lösche ich alle Zeilen aus allen Tabellen in einer SQL Server-Datenbank?

Beachten Sie, dass TRUNCATE nicht funktioniert, wenn Sie eine referenzielle Integrität festgelegt haben.

In diesem Fall funktioniert dies:

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

Bearbeiten:Um klar zu sein, der ? in den Anweisungen ist ein ? . Es wird durch den Tabellennamen von sp_MSForEachTable ersetzt Verfahren.