Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak usunąć wszystkie wiersze ze wszystkich tabel w bazie danych SQL Server?

Pamiętaj, że TRUNCATE nie będzie działać, jeśli masz ustawioną integralność referencyjną.

W takim przypadku zadziała:

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

Edycja:aby było jasne, ? w wyciągach jest ? . Jest zastępowany nazwą tabeli przez sp_MSForEachTable procedura.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy wyzwalacze SQL CLR mogą to zrobić? Czy jest jakiś lepszy sposób?

  2. Usunąć pojedynczy rekord z Entity Framework?

  3. Mała tabliczka SQL zaalokowana w pamięci

  4. Przecinki w danych CSV

  5. SQL zaznacz wszystko, jeśli parametr ma wartość null, w przeciwnym razie zwróć określoną pozycję