![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.195.167] |
![]() |
|
![]() | Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
![]() |
|
|
Я знаю, что можно сотворить DDL триггер, например, на создание/обновление структуры/удаления/переименования/etc таблицы в MS SQL Server.
Это будет тригер уровня БД (on database). Здесь все хорошо, пока таблицы настоящие (существующие в БД). Но вот если создаем временную (локальную - с одной решеточкой #, или глобальную - с двумя решеточками ##) таблицу триггер не срабатывает. Я не глупый (вроде), я знаю, что такие временные таблицы живут в БД tempdb. Вешаем триггер на tempdb: ![]() ![]() use tempdb; go create trriger create_tab_trg on database for create_table as begin select eventdata(); end; go но триггер продолжает реагировать только на создание настоящий таблиц в tempdb, но никак не временных. в связи с чем вопрос - нельзя ли факт создания(или еще какого ddl действия) временной таблицы отловить? Может какой другой тип триггера надо применить - их в ms sql тьма тьмущая, и со всеми еще не пришлось сталкиваться. |
Сообщ.
#2
,
|
|
|
кажется я сам нашел ответ на свой вопрос:
Цитата DDL triggers don't fire in response to events that affect local or global temporary tables and stored procedures. Эххх... ![]() ![]() |