|
|
|
Проблемы с триггерами на инсерт и апдейт
|
|||
|---|---|---|---|
|
#18+
MS SQL Server 2000 Есть табличка, в ней две колонки Insert_date и Update_date. При внесении изменений в табличку, триггер вставляет дату в нужную колонку. А при инсерте другой триггер по идее должен вносить дату в колонку Insert_date. Только при внесении изменений все работает нормально, при инесерте срабатывают оба триггера и вносится дата в обе колонки. Как мне разделить инсерт и апдейт? CREATE TRIGGER [INS_DATE] ON [TABLE1] FOR INSERT AS update table1 set insert_date=getdate() from table1 t, inserted i where t.id=i.id CREATE TRIGGER [UPDATE_DATE] ON [TABLE1] FOR UPDATE AS update table1 set update_date=convert(char(24),getdate(),120) from table1 t, inserted i where t.id=i.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2002, 10:00:28 |
|
||
|
Проблемы с триггерами на инсерт и апдейт
|
|||
|---|---|---|---|
|
#18+
Можно поизвращаться с проверкой содержимого таблицы deleted в триггере. А можно колонку Insert_date сделать с опцией default getdate() и оставить триггер только на update. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2002, 10:21:17 |
|
||
|
Проблемы с триггерами на инсерт и апдейт
|
|||
|---|---|---|---|
|
#18+
Триггер на апдейт должен выглядеть примерно так CREATE TRIGGER [UPDATE_DATE] ON [TABLE1] FOR UPDATE AS if not update(insert_date) begin update table1 set update_date=convert(char(24),getdate(),120) from table1 t, inserted i where t.id=i.id end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2002, 10:25:00 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32048310&tid=1820602]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 330ms |

| 0 / 0 |
