Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
Имя прцедуры надо формировать в триггере: Declare @name_proc varchar(255) set @name_proc = 'adm.name_proc' но при этом drop procedure @name_proc ругается Подскажите как запустить такое макро... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 00:45 |
|
||
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
По определению триггер не имеет права модифицировать схему. Так что единственное решение - например запись имени в специальную таблицу, которую будет читать job agent и создавать процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 01:04 |
|
||
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
Проблема в том что конструкция drop procedure @name_proc не работает (даже не в триггере) при этом exec @name_proc - запускается без вопросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 03:20 |
|
||
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
Используй не в тригерах: declare @str varchar(8000) set @str = 'drop procedure '+@proc_name exec(@str) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 04:25 |
|
||
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
Повторюсь еще раз. Триггер не имеет права изменять схему никаким образом. То есть DROP, CREATE и ALTER statements не будут работать из триггера ни при каком раскладе. Одним из решений - записывать строку 'DROP PROC <owner_name>.<proc_name>' в какйюнибудь таблицу, а параллельно агент будет каждую секунду проверять наличие записей в этой таблице и исполнять их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 05:12 |
|
||
|
Как снести свою процедуру триггером?
|
|||
|---|---|---|---|
|
#18+
Триггер мне удавалась обмануть и заставить его запускать DROP и CREATE (касалось это таблиц, другое не проверял), правда это было в далеком SQL6.5, будет ли работать нижеописанное в 7.0/2000 - не знаю. Общее направление действий такое: 1. Создается пустая процедура. 2. В триггере делается вызов этой процедуры - exec 3. Процедура модифицируется и в ней помещается этот код: create и drop. И триггер через процедуру начинает и создавать и дропать. Но! Любое изменение этого триггера приводит к тому, что он начинает ругаться на конструкции drop и create. Правда это опять лечится двойным пересозданием процедуры с убиранием нелигимных операторов и добавлением их вновь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 06:20 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32018286&tid=1824758]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 390ms |

| 0 / 0 |
