
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.09.2002, 12:29:26
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Создал триггер: CREATE TRIGGER ins_t ON t FOR INSERT AS update t set Versus = 0 from t, inserted where t.messageid = inserted.messageid Почему то при вставки строки в таблицу, поле Versus принимает значение 3. Елси изменить триггер следующим образом: CREATE TRIGGER ins_t ON t FOR INSERT AS update t set Versus = -3 from t, inserted where t.messageid = inserted.messageid то вставляется значение 0. В чем дело ? Откуда берется тройка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 12:40:22
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Единственная версия-подлый триггер на апдэйт+нестед триггерс =ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 13:06:30
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
>> триггер на апдэйт+нестед триггерс А это как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 13:21:09
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
ну в смысле, что если есть триггер на апдэйт на этой же таблице, и включена опция вложенных триггеров, то при апдэйте,сделанном в триггере на инсерт, срабатывает триггер на апдэйт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 15:43:33
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Вполне может быть, так как в триггере на update я увеличиваю это поле на 1. Но тогда почему этот триггер срабатывает три раза ? И еще как включается/отключается опция вложенных триггеров ? Если это Свойсва (базы данных) -> Recursive Triggers, то у меня там флажок не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 15:58:47
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Зайди в QA, включи Show Execution Plan, выполни в этом окошке insert и посмотри, что у тебя там происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 17:00:15
|
|||
|---|---|---|---|
|
|||
Триггер |
|||
|
#18+
Дефолт? другой триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 17:07:51
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Recursive Triggers -это возможность вызова триггера самим собой. Смотри Nested ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 17:50:35
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
>> Смотри Nested Спасибо. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 18:00:20
|
|||
|---|---|---|---|
Триггер |
|||
|
#18+
Все понял. На этой же таблице был триггер на Update, в котором данное поле увеличивалось на единицу. Причем в insert триггере 3 раза выполнялся update, что и влекло увеличение поля на 3. Теперь о том, как это поправить. Как я понял, свойство - "позволять выполнять вложенные триггеры" это свойство сервера, а не конкретной таблицы. Или все таки это не так ? Могу ли я запретить это для одной отдельной таблицы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/moderation_log.php?user_name=woka]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
208ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 2884ms |
| total: | 3200ms |

| 0 / 0 |
