Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизДо какого момента откатится транзакция Найти похожие ветки
← →
картман © (2010-06-21 13:35) [0]выполняю процедуру: exec p_my_proc
create procedure p_my_proc
as
begin
begin transaction
insert into table1 (val)
values (1)
commit transaction
end;
на таблицу table1 есть триггер на вставку:
create trigger t_my_trigger on table1 after insert
as
begin
exec p_another_proc
end;
create procedure p_another_proc
as
begin
...
end
если в p_another_proc произойдет ошибка и я в ней откачу транзакцию, откатятся ли изменения, сделанные p_my_proc?
MS SQL Server 2005
← →
Sergey13 © (2010-06-21 14:42) [1]По идее должна откатиться. Лень попробовать?
Использовать управление транзакциями в процедурах - не самая лучшая идея.
← →
картман © (2010-06-21 15:03) [2]
> Sergey13 © (21.06.10 14:42) [1]
> По идее должна откатиться. Лень попробовать?
каюсь
> Использовать управление транзакциями в процедурах - не самая
> лучшая идея.
ээээ... а где ЕЩЕ ими управлять? И почему не лучшая? Как делаешь ты?
← →
12 © (2010-06-21 15:23) [3]
> должна откатиться
← →
Sergey13 © (2010-06-21 15:59) [4]> [2] картман © (21.06.10 15:03)
> ээээ... а где ЕЩЕ ими управлять? И почему не лучшая? Как
> делаешь ты?
В клиенте, т.е. на самом верхнем уровне. Прикинь, что будет, если ты свою p_my_proc захочешь выполнить много раз подряд и в рамках единой транзакции.
← →
Ega23 © (2010-06-21 16:04) [5]
> ээээ... а где ЕЩЕ ими управлять? И почему не лучшая? Как
> делаешь ты?
А в MSSQL необходимость использование триггера - вообще штука такая... весьма спорная, вобщем. Это в IB\FB триггеры штука действительно удобная и даже рекомендуемая (ИМХО, в основном из-за убогости ХП).
В MSSQL хранимкам несколько большую роль можно отвести, соответственно пропадает необходимость в триггерах (за ну очень редким исключением, мне за 8 лет работы с MSSQL попалась всего одна реальная задача, где триггер действительно был уместен).
← →
картман © (2010-06-21 16:32) [6]
> Sergey13 © (21.06.10 15:59) [4]
>
> > [2] картман © (21.06.10 15:03)
> > ээээ... а где ЕЩЕ ими управлять? И почему не лучшая? Как
> > делаешь ты?
>
> В клиенте, т.е. на самом верхнем уровне.
думал, это моветон
> Прикинь, что будет, если ты свою p_my_proc захочешь выполнить
> много раз подряд и в рамках единой транзакции.
я так не умею(идеологически)
> Ega23 © (21.06.10 16:04) [5]
да я вообще противник триггеров - по ТЗ надо именно его впендюрить
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.094 c