【发布时间】:2011-11-22 17:00:13
【问题描述】:
我已经搜索过,但无法找到如何从 SQL Server 2008 中的 try/catch 的 catch 部分获取存储过程的参数名称和值。
我知道如何获取参数例如:
SELECT parm.name AS Parameter
,typ.name AS [Type]
FROM sys.procedures sp
JOIN sys.parameters parm ON sp.object_id = parm.object_id
JOIN sys.types typ ON parm.system_type_id = typ.system_type_id
WHERE sp.name = OBJECT_NAME(@@procid)
基本上我正在寻找的是使用参数和值执行的 SP,以便我可以记录和排除故障。比如:
wsp_GetUser_s @UserID = 123, @UserName = 'juser'
【问题讨论】:
-
也许我遗漏了一些东西,但如果你在谈论 SP 中的 try catch 块,比如 SP1,并且你想记录传递给 SP1 的参数,你怎么会不知道参数名称和值?
-
如果可能的话,我不想手动编写所有这些代码,最好制作一个动态执行此操作的 sn-p。说添加了一个新参数,我宁愿不更改catch中的代码。此外,在生成 SP 时,最好不必编写所有代码。
标签: sql-server sql-server-2008 stored-procedures try-catch