|
|
|
Триггер
|
|||
|---|---|---|---|
|
#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:29:26 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Единственная версия-подлый триггер на апдэйт+нестед триггерс =ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 12:40:22 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
>> триггер на апдэйт+нестед триггерс А это как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 13:06:30 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
ну в смысле, что если есть триггер на апдэйт на этой же таблице, и включена опция вложенных триггеров, то при апдэйте,сделанном в триггере на инсерт, срабатывает триггер на апдэйт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 13:21:09 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Вполне может быть, так как в триггере на update я увеличиваю это поле на 1. Но тогда почему этот триггер срабатывает три раза ? И еще как включается/отключается опция вложенных триггеров ? Если это Свойсва (базы данных) -> Recursive Triggers, то у меня там флажок не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 15:43:33 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Зайди в QA, включи Show Execution Plan, выполни в этом окошке insert и посмотри, что у тебя там происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 15:58:47 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Дефолт? другой триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 17:00:15 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Recursive Triggers -это возможность вызова триггера самим собой. Смотри Nested ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 17:07:51 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
>> Смотри Nested Спасибо. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 17:50:35 |
|
||
|
Триггер
|
|||
|---|---|---|---|
|
#18+
Все понял. На этой же таблице был триггер на Update, в котором данное поле увеличивалось на единицу. Причем в insert триггере 3 раза выполнялся update, что и влекло увеличение поля на 3. Теперь о том, как это поправить. Как я понял, свойство - "позволять выполнять вложенные триггеры" это свойство сервера, а не конкретной таблицы. Или все таки это не так ? Могу ли я запретить это для одной отдельной таблицы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 18:00:20 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32051402&tid=1820249]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 306ms |

| 0 / 0 |
