|
|
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
Давно меня мучает вопрос. Каким образом процедура может выяснить имя вызвавшей ее процедуры? Или, более конкретно, как триггер таблицы может узнать, какая процедура вызвала изменение/добавление/удаление, запустившее триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 09:30:00 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
Можно получить имя процедуры, которая была вызвана клиентом и если она непосредственно работает с таблицей, то все ок. Если же она вызывает другую, то тут не знаю... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 12:19:04 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
Смотри SET CONTEXT_INFO в BOL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 14:25:06 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
2Doc: Причем здесь CONTEXT_INFO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 14:31:03 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
У меня говорит следующее: The CREATE TABLE statement is not allowed within a trigger Как я понимаю, есть опция, которая позыоляет триггеру создавать таблицы. Не подскажите какая ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 18:28:19 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
2 Mic сложно это и зачем сопсно ... 2 Осирис по моему такой опции нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 20:43:34 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
Опции такой нет. Но, это ограничение можно обойти - SELECT INTO не запрещен. Есть и другой метод, не очень хороший. В триггере делается вызов процедуры. После создания триггера, в той процедуре добавляется код с CREATE TABLE. Триггер больше не ругается и работает. НО, как только триггер перекомпилять, он сразу начинает ругаться на CREATE TABLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 10:22:39 |
|
||
|
Как триггеру узнать имя процедуры, вызвавшей изменения в таблице?
|
|||
|---|---|---|---|
|
#18+
Спасибо, jimmers Ниже рабочий вариант скрипта (без CREATE TABLE в триггере). Но, к сожалению, он выдает не имя вызывающей добавление процедуры, а текст всего SQL пакета, содержащего эту процедуру. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2002, 12:52:20 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32067482&tid=1818738]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 362ms |

| 0 / 0 |
