|
|
|
MS SQL2000
|
|||
|---|---|---|---|
|
#18+
Задача. При обновлении значения act_us в таблице logon выполняеться тригер обновления (conect_us), который добавляет новою строку или изменяет текущую в другой таблице (jhlog) в зависимости от условия. Вопрос. Как правильно считать даные с текущей обновленой строки в тело тригера (переменные: @code_user, @act_user)? Тело тригера. create trigger conect_us on dbo.logon after update as if update(act_us) begin declare @code_user int, @act_user int, @comp_name char(50) set @code_user = code_us - ? set @act_user = act_us - ? set @comp_name = host_name() if @act_user = 1 begin insert into dbo.jhlog(code_us, comp_us) values (@code_user, @comp_name) end else begin update dbo.jhlog set dt_out = getdate() where (code_us = @code_user) and (dt_out IS NULL) end end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:33:09 |
|
||
|
MS SQL2000
|
|||
|---|---|---|---|
|
#18+
если это MSSQL - тогда будет: create trigger conect_us on dbo.logon FOR update ... Select @code_user = code_us, @act_user = act_us FROM inserted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:42:49 |
|
||
|
MS SQL2000
|
|||
|---|---|---|---|
|
#18+
Просто неприлично писать триггеры, работающие только с одной записью... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 15:35:06 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1819846]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 433ms |

| 0 / 0 |
