sql >> Databasteknik >  >> RDS >> Sqlserver

Hur tar man bort alla rader från alla tabeller i en SQL Server-databas?

Observera att TRUNCATE inte fungerar om du har någon referensintegritet inställd.

I så fall kommer detta att fungera:

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

Redigera:För att vara tydlig, ? i satserna finns en ? . Den har ersatts med tabellnamnet av sp_MSForEachTable förfarande.



  1. UPDATE-sats för att omtilldela ett kolumnvärde enligt en numerisk formel

  2. Hur använder man tcp_keepalives-inställningar i Postgresql?

  3. Knepig grupperad ordning i SQL

  4. LOAD DATA LOCAL INFILE fungerar inte från php 5.5 med PDO