Если вы делаете это с любой частотой, черт возьми, даже по расписанию, я бы абсолютно, однозначно, никогда не использовал бы оператор DML. Стоимость записи в журнал транзакций просто высокий, и перевод всей базы данных в режим восстановления SIMPLE
для усечения одной таблицы - просто смешно.
Лучший способ, к сожалению, трудный или трудоемкий. Это существо:
- Ограничения сброса
- Усеченная таблица
- Повторное создание ограничений
Мой процесс для этого включает следующие шаги:
- В SSMS щелкните правой кнопкой мыши по рассматриваемой таблице и выберите Просмотр зависимостей
- Обратите внимание на таблицы, на которые есть ссылки (если есть)
- Вернитесь в проводник объектов, разверните узел Ключи и запишите внешние ключи (если есть)
- Запуск сценариев (удаление / усечение / повторное создание)
Сценарии такого рода должны выполняться в пределах блоков begin tran
и commit tran
.