Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

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

start [/forum/topic.php?fid=46&mobile=1&tid=1824758]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
84ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 437ms |

| 0 / 0 |
