Отмена запроса во время усечения - PullRequest
2 голосов
/ 28 марта 2012

Я хотел знать, что произойдет, если я отменю выполнение запроса во время усечения, удаляются ли записи?И есть ли способ их восстановить?Усечение было активировано на таблице, которая содержала 1,5 миллиона записей. После небольшого поиска в Google я понимаю, что ответ - нет, но я хотел быть уверен.Я использую SQL Server 2005

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Truncate освобождает страницы, назначенные для таблицы.

Это все еще атомарный, в котором вы можете отменить и сделать откат.Вы также можете заключить TRUNCATE в явную транзакцию и выполнить откат.

Однако после фиксации транзакции записи исчезают.В отличие от DELETE, поскольку действие регистрируется минимально, в журнале транзакций нет содержимого записи.

0 голосов
/ 28 марта 2012

Хорошее объяснение по этой ссылке

Как я понимаю, если у вас есть контроль транзакций, можно удалить и DELETE, и TRUNCATE.

Разница в том, что без транзакции, если вы делаете УДАЛЕНИЕ, вы все равно можете восстановить свои данные, например, путем восстановления журнала, что вы не можете сделать на TRUNCATE, потому что удаление будет записываться построчно. Строка и усечение, как указывал @JNK, минимально регистрируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...