Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.09 c
15-1354100495
O'ShinW
2012-11-28 15:01
2013.03.22
Запретить всем прятать таскбар


2-1333447731
Цукор5
2012-04-03 14:08
2013.03.22
Объединение мелких файлов в один большой


11-1243713103
igg
2009-05-30 23:51
2013.03.22
KOL + FPC для WinCE: Ошибка при компиляции


15-1346646304
AV
2012-09-03 08:25
2013.03.22
Когда окно максимизировано, оно меньше ресурсов ест?


2-1336143614
prodex
2012-05-04 19:00
2013.03.22
Событие окончания передачи по TCP в winsock





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский