Разница между Delete и Truncate в sql-сервере. Был ли я неправ...?
В недавнем интервью мне было задано различие между ними. Я ответил генералу, что все, что мы знаем...
Затем собеседник спросил, можно ли отменить усечение? Я ответил нет...
Интервьюер сказал, что он может быть отменен и попросил меня просмотреть детали операции за сценой как удаления, так и усечения и проверить его позже.
Хорошо, я размещаю этот вопрос здесь не только для определения и того, что мы знаем... но чтобы понять его суть. Пролить свет на этот аспект будет очень appricieated...
Заранее спасибо
Ответы
Ответ 2
Операция truncate освободит все страницы, принадлежащие этой таблице. Эти дезадаптации регистрируются и могут быть отброшены назад. Удалить будет отмечать все строки как удаленные и записывать каждую отдельную строку.
Ответ 3
Truncate можно отбросить, если вы сделаете это прямо сейчас в транзакции. Он не может быть откат позже из журнала транзакций, как при восстановлении базы данных. Проверьте его в транзакции и посмотрите.
Ответ 4
Итак, в конце концов вы можете отбросить Truncate как часть транзакции, но не после того, как ее совершили?