Чи коректний тригер?
а чи коректно в тригері на апдейт (After update) на таблицю Table1 робити апдейт цієї ж таблиці Table1?
а чи коректно в тригері на апдейт (After update) на таблицю Table1 робити апдейт цієї ж таблиці Table1?
2 Артур Пирожков
За такой триггер надо дать по рукам.
Чому? Доволі часто виникає потреба. Чи мається на увазі
Тоді звичайно.UPDATE для поля PASSWORD_HASH для тригера на поле PLAIN_PASSWORD
2 silverwolf: «триггер» — рос. «тригер» — укр.
Я написал до того как вы сказали, БД в Oracle это возможно:2., а хіба тригер чіпляється не на таблицю загалом, а ще й на якийсь із стовпців?
по теме MS SQL:
Recursive Triggers
SQL Server also allows recursive invocation of triggers when the recursive triggers setting is enabled in sp_dboption.
Recursive triggers allow two types of recursion to occur:
Indirect recursion
Direct recursion
With indirect recursion, an application updates table T1, which fires trigger TR1, updating table T2. In this scenario, trigger T2 then fires and updates table T1.
With direct recursion, the application updates table T1, which fires trigger TR1, updating table T1. Because table T1 was updated, trigger TR1 fires again, and so on.
This example uses both indirect and direct trigger recursion. Assume that two update triggers, TR1 and TR2, are defined on table T1. Trigger TR1 updates table T1 recursively. An UPDATE statement executes each TR1 and TR2 one time. In addition, the execution of TR1 triggers the execution of TR1 (recursively) and TR2. The inserted and deleted tables for a given trigger contain rows corresponding only to the UPDATE statement that invoked the trigger.
Note The above behavior occurs only if the recursive triggers setting of sp_dboption is enabled. There is no defined order in which multiple triggers defined for a given event are executed. Each trigger should be self-contained.
Disabling the recursive triggers setting only prevents direct recursions. To disable indirect recursion as well, set the nested triggers server option to 0 using sp_configure.
technet.microsoft.com/...ibrary/aa258254 (SQL.80).aspx
end
Что вам мешает написать этот триггер (кстати, вроде таки 2 буквы «г» )? Когда выполните напишите сюда, реально интересно.
2., а хіба тригер чіпляється не на таблицю загалом, а ще й на якийсь із стовпців?
Но по хорошему, рекомендуеться избегать тригеров и по возможности использовать хранимые процедуры — так проще дебажить, покрыть тестами, раздать права итд... то есть поддерживать и отвечать за такой код...
все зависит от дизайна и business needs
не обязательно, у вас могут быть указаны разные колонки в апдейте и тригере, какой у вас тригер и какая БД?
не знаю, що являється критерієм коретності загалом:), але я під «коректністю» мав на увазі таке: чи не варто мені за такий тригер дати по руках?:)
ну я бачу, що може статися: по теорії повинна б виникнути нескінченна рекурсія, тому так робити не можна, але на практиці все працює:)
14 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів