SQL Server - выяснение того, что называется, когда в триггере - PullRequest
0 голосов
/ 19 июня 2019

Таким образом, у меня есть ситуация, когда хранимая процедура (Proc_a) вызывает другую хранимую процедуру (Proc_b), которая вставляется в таблицу. Триггер вставки на столе срабатывает, и я хотел бы знать, что это было вызвано Proc_b. (SQL Server 2016 является версией)

Ранее я провел небольшое исследование и придумал следующий код для триггера:

            SELECT 1
        FROM sys.dm_exec_requests AS Req
        INNER JOIN sys.dm_exec_sessions AS Ses ON Ses.session_id = Req.session_id
        CROSS APPLY sys.dm_exec_input_buffer(Req.session_id, Req.request_id) AS InBuf
        WHERE Ses.is_user_process = 1
            AND Req.session_id = @@SPID
            AND InBuf.event_info LIKE '%proc_b%'

Это успешно только для 'proc_a' (изначально выполненный proc), но не для proc_b. Есть идеи?

Да, я знаю, весь процесс должен быть переосмыслен, но я живу в реальном мире корпоративных информационных технологий ...

...