Я пересматриваю свое предыдущее утверждение:
Вы должны понимать это, используя
TRUNCATE данные будут очищены, но
ничего не будет записано в
Журнал транзакций. Запись в журнал
вот почему DELETE будет длиться вечно на 5
миллион строк Я часто использую TRUNCATE
во время разработки, но вы должны быть
с осторожностью использовать его на производстве
база данных, потому что вы не сможете
откатить ваши изменения. Вам следует
немедленно сделать полную базу данных
резервное копирование после выполнения TRUNCATE для
создать новую основу для восстановления.
Вышеприведенное утверждение было направлено на то, чтобы убедить вас, что вы понимаете, что между ними есть разница. К сожалению, он плохо написан и делает неподдерживаемые утверждения, так как я на самом деле не проверял себя между ними. Он основан на заявлениях, которые я слышал от других.
С MSDN :
Оператор DELETE удаляет строки один
в то время и записывает запись в
журнал транзакций для каждой удаленной строки.
TRUNCATE TABLE удаляет данные
освобождение страниц данных, используемых для
хранить данные таблицы, и только
освобождение страницы записывается в
журнал транзакций.
Я просто хотел сказать, что между этими двумя понятиями есть принципиальная разница, и, поскольку есть разница, будут приложения, в которых одно или другое может быть неуместным.