Как получить доступ к переменной Context_Info() в SQL2005 Profiler?

Я использую переменную Context_Info() для отслеживания пользователя, выполняющего хранимую процедуру и sql свободной формы. При устранении неполадок на этом сервере проходит каждый сеанс. Я хотел бы иметь возможность вводить значение переменной context_info() и фильтровать на ее основе.


person Community    schedule 26.06.2009    source источник


Ответы (1)


Вы можете использовать события UserConfigurable вместе с sp_trace_generateevent (EventId 82-91) при настройке context_info() для вывода значений в трассировку. Вы можете либо сделать это, либо проследить операторы, устанавливающие context_info(). Вы не сможете получить это значение каким-либо другим способом, если не напишете процесс, выводящий вывод sys.dm_exec_sessions в цикле во время выполнения трассировки:

select session_id, cast(context_info as varchar(128)) as context_info
from sys.dm_exec_sessions
where session_id > 50 -- user sessions

для SQL 2000 вы можете использовать системные процессы:

select spid, cast(context_info as varchar(128)) as context_info
from sysprocesses
where sid > 50 -- user sessions
person Jonathan Kehayias    schedule 30.06.2009