powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать какая процедура запустила триггер
10 сообщений из 10, страница 1 из 1
Как узнать какая процедура запустила триггер
    #40058892
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет
подскажите пожалуйста, хочу написать триггер на логирование добавления и изменения данных в таблице
и мне нужно знать какая процедура внесла изменения в таблицу, хочу в триггере записать изменения + название процедуры
можно такое провернуть?
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058896
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

триггер запускает не процедура, а insert/update/delete.
Если Вам требуется вести журнал, то доработайте процедуры так, чтобы они при изменениях писали свое имя и время, например, в выделенные столбцы таблицы.
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058903
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,
нашел ответ на свой вопрос

declare @txtBuf table (EventType varchar(30), Parameters smallint, EventInfo varchar(max))
insert into @txtBuf (EventType, Parameters, EventInfo)
EXEC ('DBCC INPUTBUFFER(@@spid)')
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058907
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Владислав Колосов,
нашел ответ на свой вопрос

declare @txtBuf table (EventType varchar(30), Parameters smallint, EventInfo varchar(max))
insert into @txtBuf (EventType, Parameters, EventInfo)
EXEC ('DBCC INPUTBUFFER(@@spid)')



INPUTBUFFER - это не процедура вызвавшая триггер, это текст запроса, пришедший с клиента.
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058910
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,
да, это подходит
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058913
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

INPUTBUFFER может быть пуст в некоторых случаях. Видимо, Вы совсем в отчаянном положении :)
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058919
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

дайте пожалуйста альтернативу
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40058921
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Владислав Колосов,

дайте пожалуйста альтернативу

https://stackoverflow.com/questions/4261278/is-it-possible-for-a-trigger-to-find-the-name-of-the-stored-procedure-that-modif
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40060027
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
OUTER APPLY sys.dm_exec_input_buffer(@@SPID, NULL) AS ib 



sys.dm_exec_input_buffer
...
Рейтинг: 0 / 0
Как узнать какая процедура запустила триггер
    #40060074
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что если данные изменяет не процедура, то, очевидно, название процедуры узнать никак нельзя.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать какая процедура запустила триггер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]