【发布时间】:2016-01-28 18:44:39
【问题描述】:
有没有办法从存储过程中动态获取所有参数值?
换句话说,遍历一个存储过程中的所有参数以将它们的值放入一个字符串中。这是针对一堆存储过程的统一日志记录过程。
我可以得到参数的名称:
SELECT PARAMETER_NAME
FROM INFORMATION_SCHEMA.PARAMETER
WHERE SPECIFIC_NAME = 'procedure_name';
另外,我尝试使用动态 SQL 命令。我已经生成了一个包含参数的命令,但是 EXEC 不能执行命令。
@cmd = 'SELECT '@UserID' + CONVERT(NVARCHAR(MAX), @UserID)
+ '@Date' + CONVERT(NVARCHAR(MAX), @Date)'
EXEC @cmd
除了手动为每个存储过程生成参数值列表之外,还有其他方法吗?
【问题讨论】:
-
即使是日志,编写存储过程的人也需要添加日志代码。
-
存储过程已经写好了,我正在寻找容易实现的方法。在最好的情况下,一些动态的代码可以在所有 SP 中工作,而无需考虑它有多少参数。
-
那么你的问题到底是什么?
-
@Rafael 为此编写通用代码。类似于在帖子中获取参数名称的方式。
标签: sql tsql stored-procedures