Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Кто знает, как узнать какой триггер сработал. В триггере я вызываю хранимую процедуру, которой передаю параметр, а переменную параметра определяю как select @a = a from inserted. Но у меня триггер на insert,update,delete. Как указать из какой таблицы (inserted/deleted) мне брать переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 12:19 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
select @a = a from inserted if @a is NULL select @a = a from deleted -- значит DELETE сработал if @a is NULL -- значит конец света ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 12:31 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
> select @a = a from inserted > if @a is NULL select @a = a from deleted -- значит DELETE сработал > if @a is NULL -- значит конец света Гы. А это вполне реальная и штатная ситуация, когда в триггере inserted и deleted не содержат ни одной записи одновременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 12:40 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Такого не бывает, но может быть что поле "a" действительно вставляется/удаляется как NULL. Поэтому лучше if exists(select count(*) from Inserted) -- INSERT или UPDATE else -- DELETE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 12:44 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Вообще-то и insert, и update, и delete могут выполняться с условиями, которые не затронут ни одну запись, поэтому ориентироваться на содержимое таблиц inserted и deleted нельзя. Не проще ли в вызываемую процедуру добавить параметр 'TriggerKind' и устанавливать его в 0, 1 или 2 в триггере при вызове вышеупомянутой процедуры ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 13:00 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Согласен бывает, сглупил, поэтому надо так if exists(select count(*) from Inserted) and exists(select count(*) from Deleted) -- UPDATE else if exists(select count(*) from Inserted) -- INSERT else if exists(select count(*) from Deleted) -- DELETE else -- нефиг было меня вызывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2001, 13:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32014475&tid=1825467]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 384ms |

| 0 / 0 |
