Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изтрия всички редове от всички таблици в база данни на SQL Server?

Обърнете внимание, че TRUNCATE няма да работи, ако имате зададен референтен интегритет.

В такъв случай това ще работи:

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

Редактиране:За да бъде ясно, ? в изразите е ? . Заменя се с името на таблицата от sp_MSForEachTable процедура.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съобщение 8672, ниво 16, състояние 1, ред 1 Операторът MERGE се опита да АКТУАЛИЗИРА или ИЗТРИВА същия ред повече от веднъж

  2. Вземете първия ред за една група

  3. Съхранената процедура виси привидно без обяснение

  4. Как да видя SQL заявка в SQL Profiler?

  5. SQL Server 2008:копиране на съдържанието на всички таблици от една база данни в друга база данни