Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 获取当前Sp参数和值-(反射相似)?_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

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

Sql server 获取当前Sp参数和值-(反射相似)?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,假设我有一个简单的SP: CREATE PROCEDURE mySp @a int, @b int AS BEGIN ... ... select ________ END 现在让我们假设我通过以下方式执行它: exec mySp 1,2 问题: 是否有任何代码可以放在\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu中,以便显示: "you sent param named a with value 1" "you s

假设我有一个简单的SP:

CREATE PROCEDURE mySp
  @a int, 
  @b int
AS
  BEGIN
      ...
      ...
      select ________
  END
现在让我们假设我通过以下方式执行它:

exec mySp 1,2

问题:

是否有任何代码可以放在
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
中,以便显示:

"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'
创建过程mySp
@整数,
@b INT,
@c varchar(最大值)
作为
开始
声明@names varchar(MAX)=“”
选择@names+=name+','
从sys.parameters
其中对象\u id=@@PROCID和名称'@c'
按参数排序\u id
选择“为'+@names+'传入的值为'+@c
结束
去
执行官mySp 1,1,“1,1”

@RoyiNamir,您正在寻找SQL Server Profiler吗?这是一个可以跟踪远程服务器上运行的所有SP参数的工具。