Примерно так, только учти откатить такую операцию невозможно, так как она не идёт в контексте транзакции, зато обнуляет счётчики и работает довольно быстро, но может тормознуть конкретно, если к базе данных кто-то законнекчен и пробует что-то менять в это же время
| Код | Declare @tableName varchar 128, @sql varchar(500)
Declare c cursor static for Select Table_Name From information_schema.tables Where Table_Type='BASE TABLE' Open c fetch next from c into @tableName While @@fetch_status=0 begin Set @sql='Truncate table '+@tableName Exec @sql fetch next from c into @tableName end Close c Deallocate c
|
Для выполнения в контексте транзакции но не обнуляя счётчики:
| Код | Declare @tableName varchar 128, @sql varchar(500)
Declare c cursor static for Select Table_Name From information_schema.tables Where Table_Type='BASE TABLE' Open c fetch next from c into @tableName While @@fetch_status=0 begin Set @sql='Delete From '+@tableName Exec @sql fetch next from c into @tableName end Close c Deallocate c
|
|