Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment supprimer toutes les lignes de toutes les tables d'une base de données SQL Server ?

Notez que TRUNCATE ne fonctionnera pas si vous avez défini une intégrité référentielle.

Dans ce cas, cela fonctionnera :

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

Edit :Pour être clair, le ? dans les instructions est un ? . Il est remplacé par le nom de la table par le sp_MSForEachTable procédure.