Tsql 如何将报表的名称传递给存储过程,而不必以标准方式(作为变量)传递?

Tsql 如何将报表的名称传递给存储过程,而不必以标准方式(作为变量)传递?,tsql,stored-procedures,reporting-services,sql-server-2008-r2,reportbuilder3.0,Tsql,Stored Procedures,Reporting Services,Sql Server 2008 R2,Reportbuilder3.0,我有一个存储过程,用于查找报表的参数名称。它需要先知道报表名称,然后才能找到参数名称。问题在于,存储过程的其余部分构建了一个动态SQL字符串,该字符串被发送回报表生成器,以便像常规SQL语句一样进行解释,即 SELECT item FROM TableA WHERE item = @item 我需要存储过程来输出它,以便报表生成器正确提示我输入@item的值。如果我能做到这一点,那么我知道在运行报表时,它将在前端使用@item参数 问题是如果我以标准方式创建存

我有一个存储过程,用于查找报表的参数名称。它需要先知道报表名称,然后才能找到参数名称。问题在于,存储过程的其余部分构建了一个动态SQL字符串,该字符串被发送回报表生成器,以便像常规SQL语句一样进行解释,即

SELECT

    item

FROM

    TableA

WHERE

    item = @item
我需要存储过程来输出它,以便报表生成器正确提示我输入
@item
的值。如果我能做到这一点,那么我知道在运行报表时,它将在前端使用
@item
参数

问题是如果我以标准方式创建存储过程

CREATE procedure [dbo].[stored_proc]
(@ReportName varchar(100))
...
然后,当我尝试在报表生成器的设计视图中的数据集中使用SP时,它会提示我输入
@ReportName
值,这是错误的,因为这样它就不会提示我输入
@item
。我需要一种方法来自动将报告的名称传递给SP,而不必将其作为变量传递


问这个问题的另一种方式可能是:存储过程如何查看有关调用它的程序的信息?

当您说是谁调用它时,我想您指的是报告?我打赌您正在使用某种报表登录进行此调用,这也会调用其他报表?
从表a中选择项,其中item=@item
将返回
@item
或其他内容。您可以使用一个表或一个全局临时表来保存该值。您在调用报表并在存储过程中读取报表时将其存储。@scsimon yes,这就是问题的标题。服务器不关心结果是什么,只关心请求结果的人。