gpt4 book ai didi

sql-server - 获取当前 Sp 参数和值 - (类似反射)?

转载 作者:行者123 更新时间:2023-12-02 02:01:03 25 4
gpt4 key购买 nike

假设我有这个简单的 SP:

CREATE PROCEDURE mySp
@a int,
@b int
AS
BEGIN
...
...
select ________
END

现在假设我通过以下方式执行它:

执行 mySp 1,2

问题:

是否有任何代码我可以放在______ 中以便它会显示给我:

"you sent param named a with value 1"
"you sent param named b with value 2"

此代码应该是动态(粘贴在某些 SP 中)。因此我不能这样做:

select "you sent param named a...with value "+cast (@a...)
select "you sent param named b...with value "+cast (@b...)

(它必须在运行时读取其上下文参数和值)

这可能吗?

最佳答案

我认为不可能干净地做到这一点。一种非常肮脏的做法是传入一个额外的 varchar 列,该列是其余参数的逗号分隔列表值。然后你可以获得各个参数的名称并将它们与传入的参数进行匹配。这是一个示例

CREATE PROCEDURE mySp
@a int,
@b INT,
@c varchar(MAX)
AS
BEGIN
declare @names varchar(MAX) = ''
SELECT @names += name +','
FROM sys.parameters
WHERE object_id = @@PROCID AND name <> '@c'
ORDER BY parameter_id

SELECT 'The passed in values for '+@names + ' are ' +@c

END


go
EXEC mySp 1,1, '1,1'

关于sql-server - 获取当前 Sp 参数和值 - (类似反射)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17198465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com