Как получить входные параметры из хранимой процедуры (SQL Server 2005)? - PullRequest
2 голосов
/ 18 мая 2010

Я хотел бы создать общее решение для ведения журнала для моих хранимых процедур, позволяющее мне регистрировать значения входных параметров. В настоящее время я делаю это более или менее вручную, и я очень недоволен этим подходом. В идеале я хотел бы сказать что-то вроде следующего:

"учитывая мой spid, каковы мои входные параметры и их значения?"

Это та же самая информация, которая мне предоставляется, когда я запускаю SQL Profiler - для меня перечислены имя хранимой процедуры, все входные параметры и все входные значения. Как мне получить эти значения из хранимой процедуры?

Спасибо; Дункан

1 Ответ

0 голосов
/ 18 мая 2010

Это будет трудно сделать в рамках хранимой процедуры. Профилировщик SQL работает под другим SPID и выполняет оператор, подобный следующему, чтобы захватить операторы других пользователей:

DECLARE @handle VARBINARY(64)
SELECT @handle = sql_handle from sys.sysprocesses where spid = @SPID
SELECT text FROM sys.dm_exec_sql_text(@handle)

Проблема в том, что если вы запустите это в сохраненном процессе для текущего SPID, все, что вы собираетесь получить - это утверждение выше. Я не верю, что SQL-сервер предоставляет конструкцию T-SQL для выполнения пакета под другим SPID. Я полагаю, вы могли бы написать хранимую процедуру .Net dll, которая выполняет пакет на другом подключении. делать такие вещи, но это может быть больше проблем, чем стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...