Какой смысл “ROLLBACK TRANSACTION named_transaction”?

На диалоговом окне Замены Вы хотите установить режим поиска на "Расширенный". Нормальный или работа привычки режимов Regular Expression.

Тогда просто находят "\r\n" (или просто \n для файлов Unix или просто \r для файлов формата Mac) и устанавливают замену на то, что Вы хотите.

6
задан Cheran Shunmugavel 9 January 2012 в 19:21
поделиться

1 ответ

Точки сохранения в точности соответствуют названию: «точки сохранения» в последовательности журнала. Последовательность журналов всегда линейна. Если вы откатываетесь к точке сохранения, вы откатываете все, транзакции между вашей текущей позицией в журнале и точкой сохранения. Рассмотрим ваш пример:

LSN 1: BEGIN TRAN OUTERTRAN
LSN 2: INSERT INTO ...
LSN 3: BEGIN TRAN INNERTRAN
LSN 4: INSERT INTO ...
LSN 5: ROLLBACK TRAN OUTERTRAN

По порядковому номеру журнала (LSN) 1 создается точка сохранения OUTERTRAN. Первый INSERT создает LSN 2. Затем INNERTRAN создает точку сохранения с LSN 3. Второй INSERT создает новый LSN, 4. ROLLBACK OUTERTRAN эквивалентен 'ROLLBACK log до LSN 1'. Вы не можете «пропустить» части журнала, поэтому вы должны откатывать каждую операцию в журнале до тех пор, пока не будет достигнут LSN 1 (когда была создана точка сохранения OUTERTRAN).

С другой стороны, если при последней операции вы выполните команду ROLLBACK INNERTRAN, механизм откатится до LSN 3 (где точка сохранения INNERTRAN была вставлена ​​в журнал), таким образом сохраняя LSN 1 и LSN 2 (т.е. первый INSERT).

Практический пример точек сохранения см. В Обработка исключений и вложенные транзакции .

5
ответ дан 17 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: