Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Если в триггере after delete выполнится rollback transaction, то удаление отменится или нет?
12 июн 12, 01:19    [12701052]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
а что на это счет говорит документация?
12 июн 12, 01:21    [12701058]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Триггер выполняется как неявно определенная транзакция, поэтому внутри триггера допускается применение команд управления транзакциями. В частности, при обнаружении нарушения ограничений целостности для прерывания выполнения триггера и отмены всех изменений, которые пытался выполнить пользователь, необходимо использовать команду ROLLBACK TRANSACTION.


я тут прочитал - довольно расплывчито
12 июн 12, 01:26    [12701063]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
странно, а я почитал - так вроде всё четко
автор
If a ROLLBACK TRANSACTION is issued in a trigger:

All data modifications made to that point in the current transaction are rolled back, including any made by the trigger.

The trigger continues executing any remaining statements after the ROLLBACK statement. If any of these statements modify data, the modifications are not rolled back. No nested triggers are fired by the execution of these remaining statements.

The statements in the batch after the statement that fired the trigger are not executed.
12 июн 12, 01:37    [12701079]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
моего уровня английского не хватает, а переводчик ещё хуже.

так сложно ответить да или нет?
12 июн 12, 01:48    [12701087]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
The trigger continues executing any remaining statements after the ROLLBACK statement

The statements in the batch after the statement that fired the trigger are not executed

так выполняется или нет - противоречие какое-то
12 июн 12, 02:17    [12701107]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
redwhite90
моего уровня английского не хватает, а переводчик ещё хуже.


так лучше?
http://msdn.microsoft.com/ru-ru/library/ms181299
автор
Если инструкция ROLLBACK TRANSACTION запускается в триггере, происходит следующее:

Все изменения данных, сделанные к настоящему времени в текущей базе данных, откатываются, включая изменения, сделанные триггером.

Триггер продолжает выполнять все оставшиеся инструкции после инструкции ROLLBACK. Если какая-нибудь из инструкций изменит данные, откат этих изменений выполнен не будет. Вложенные триггеры не выполняются при выполнении оставшихся инструкций.

Инструкции в пакете, следующие за инструкцией, вызвавшей срабатывание триггера, не выполняются.
12 июн 12, 09:51    [12701256]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
redwhite90
The trigger continues executing any remaining statements after the ROLLBACK statement

The statements in the batch after the statement that fired the trigger are not executed

так выполняется или нет - противоречие какое-то

Где противоречие?
Триггер выполнится до конца, батч - прервется.
12 июн 12, 09:51    [12701257]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
Олегон
Member

Откуда: Казахстан, Алматы
Сообщений: 80
Только запутываете человека дополнительной информацией о том, что произойдет с выполнением триггера...
Ответ: да, удаление отменится.
12 июн 12, 11:17    [12701456]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Олегон
Только запутываете человека дополнительной информацией о том, что произойдет с выполнением триггера...
Ответ: да, удаление отменится.

чтобы "не запутываться", достаточно из 3-х пунктов "чего происходит" прочитать третий.

зы и ждать дополнительных вопросов на тему "а я тут вот, а оно не откатилось"
12 июн 12, 11:19    [12701462]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
Олегон
Member

Откуда: Казахстан, Алматы
Сообщений: 80
locky
зы и ждать дополнительных вопросов на тему "а я тут вот, а оно не откатилось"


Так можно воооообще вглубь уйти :)
Вопрос простой "в триггере after delete удаление отменится?". Чего тут додумывать, если понятно, что речь идет об удаленных данных в таблице, для которой этот триггер, а не о других возможных инструкциях в коде триггера после rollback.
12 июн 12, 11:27    [12701490]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Олегон
locky
зы и ждать дополнительных вопросов на тему "а я тут вот, а оно не откатилось"


Так можно воооообще вглубь уйти :)
Вопрос простой "в триггере after delete удаление отменится?". Чего тут додумывать, если понятно, что речь идет об удаленных данных в таблице, для которой этот триггер, а не о других возможных инструкциях в коде триггера после rollback.

Удаление чего именно отменится?
исходный стейтмент?
Или таки тот, что в триггере
А что еще произойдёт?
12 июн 12, 11:29    [12701493]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
Олегон
Member

Откуда: Казахстан, Алматы
Сообщений: 80
locky
Олегон
пропущено...


Так можно воооообще вглубь уйти :)
Вопрос простой "в триггере after delete удаление отменится?". Чего тут додумывать, если понятно, что речь идет об удаленных данных в таблице, для которой этот триггер, а не о других возможных инструкциях в коде триггера после rollback.

Удаление чего именно отменится?
исходный стейтмент?
Или таки тот, что в триггере
А что еще произойдёт?


Исходный стейтмент. Или это не понятно из вопроса?
Что еще произойдет об этом ТС не спрашивал.
12 июн 12, 11:37    [12701508]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Олегон
locky
пропущено...

Удаление чего именно отменится?
исходный стейтмент?
Или таки тот, что в триггере
А что еще произойдёт?


Исходный стейтмент. Или это не понятно из вопроса?
Что еще произойдет об этом ТС не спрашивал.

практика показывает, что зачастую такие вопросы по одиночке не ходят.
И проще процитировать 3 (а не один) пункт документации, чем отвечать на вопросы по мере их поступления
Опять-таки, и ТСу это будет полезно. Знание матчасти еще никому не вредило.
12 июн 12, 11:40    [12701515]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
Олегон
Member

Откуда: Казахстан, Алматы
Сообщений: 80
locky
практика показывает, что зачастую такие вопросы по одиночке не ходят.
И проще процитировать 3 (а не один) пункт документации, чем отвечать на вопросы по мере их поступления
Опять-таки, и ТСу это будет полезно. Знание матчасти еще никому не вредило.


Не спорю, все так.
Но я бы не стал додумывать за ТС. Есть конкретный вопрос - вот конкретный ответ + цитата из документации для пользы ТС, ну и как подтверждение своим словам.
12 июн 12, 11:45    [12701524]     Ответить | Цитировать Сообщить модератору
 Re: Если в триггере after delete выполнится rollback transaction, то удаление отменится или н  [new]
redwhite90
Member

Откуда:
Сообщений: 1907
Олегон, спасибо.

Сообщение было отредактировано: 13 июн 12, 11:08
13 июн 12, 01:53    [12705272]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить