Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Базы данных: SQL > DDL trigger MS SQL для временных таблиц |
Автор: SPrograMMer 22.09.21, 12:06 |
Я знаю, что можно сотворить DDL триггер, например, на создание/обновление структуры/удаления/переименования/etc таблицы в MS SQL Server. Это будет тригер уровня БД (on database). Здесь все хорошо, пока таблицы настоящие (существующие в БД). Но вот если создаем временную (локальную - с одной решеточкой #, или глобальную - с двумя решеточками ##) таблицу триггер не срабатывает. Я не глупый (вроде), я знаю, что такие временные таблицы живут в БД tempdb. Вешаем триггер на tempdb: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> use tempdb; go create trriger create_tab_trg on database for create_table as begin select eventdata(); end; go но триггер продолжает реагировать только на создание настоящий таблиц в tempdb, но никак не временных. в связи с чем вопрос - нельзя ли факт создания(или еще какого ddl действия) временной таблицы отловить? Может какой другой тип триггера надо применить - их в ms sql тьма тьмущая, и со всеми еще не пришлось сталкиваться. |
Автор: SPrograMMer 22.09.21, 13:11 |
кажется я сам нашел ответ на свой вопрос: Цитата DDL triggers don't fire in response to events that affect local or global temporary tables and stored procedures. Эххх... а так хотелось |