Усекать все таблицы в БД
Я выполнил следующий скрипт для удаления / усечения всех таблиц в определенной БД:
EXEC sp_MSForEachTable 'DISABLE TRIGGER ALL ON ?'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'DELETE FROM ?'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ENABLE TRIGGER ALL ON ?'
GO
Будет ли приведенный выше скрипт обрезать все таблицы во всех БД или только в той БД, в которой я его запускаю?
1 ответ
Он будет выполняться только в той БД, в которой вы его используете. Однако для безопасности используйте USE yourDBName в верхней части окна запроса.
Попробуй вот так,
USE yourDBName EXEC sp_MSforeachtable 'TRUNCATE TABLE ?'