Таким образом, у меня есть ситуация, когда хранимая процедура (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. Есть идеи?
Да, я знаю, весь процесс должен быть переосмыслен, но я живу в реальном мире корпоративных информационных технологий ...