sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo eliminar todas las filas de todas las tablas en una base de datos de SQL Server?

Tenga en cuenta que TRUNCATE no funcionará si tiene algún conjunto de integridad referencial.

En ese caso, esto 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 claros, el ? en las declaraciones es un ? . Se reemplaza con el nombre de la tabla por sp_MSForEachTable procedimiento.