我可以在SSRS中的Query Builder中编写存储过程吗?

时间:2013-07-30 19:31:57

标签: sql-server-2008 reporting-services ssrs-2008

我想先运行以下程序:

exec ep_upd_server_abc

然后执行以下语句:

SELECT * FROM dbo.Server_Warehouse 
WHERE Enabled = 'f' and disabledweekly = 'f'

我可以在SSRS查询生成器中编写以下过程,以便执行两个语句吗?

CREATE PROCEDURE ShowDBJob
As
Begin
    exec ep_upd_server_abc;

    SELECT * FROM dbo.Server_Warehouse 
    WHERE Enabled = 'f' and disabledweekly = 'f'
End

有解决方法吗?

我尝试在SSRS查询生成器中运行它,它给了我一个错误。非常感谢任何想法和建议......谢谢!!

2 个答案:

答案 0 :(得分:4)

为什么不为

做这个确切的程序
CREATE PROCEDURE ShowDBJob
As
Begin
    exec ep_upd_server_abc;

    SELECT * FROM dbo.Server_Warehouse 
    WHERE Enabled = 'f' and disabledweekly = 'f'
End
在SQL Management Studio中

并调用它?不要在SSRS恕我直言中进行任何类型的实时事件驱动编码或过程。滑坡,你试图使用相当于螺丝刀的锤子,反之亦然。 SQL Managment studio用于设计proc和访问SQL Server数据库,直接创建对象。 SSRS旨在返回数据连接,数据集的结果,评估要显示的一个或多个对象上的数据集的呈现,除了围绕这些事物的特征/语法之外没有更多。即使访问临时表'#(某事物)'和动态声明的参数'declare @thing int(数据集内部声明)'也会让它变得疯狂。坚持使用预定义的可编程对象或已创建的过程和函数。不要试图动态创建它们。

再加上想一想。每次调用数据集时,每次都不能创建该对象,因为它已经存在。然后你将不得不改变它或放弃它并首先重新创建它。 SSMS已经在您的选项中执行此部分并将它们存储在数据库中。 SSRS是SQL Server的附加功能,但并不是创建对象的全功能。特别是在飞行中。

答案 1 :(得分:1)

不,您不能从RS中的查询设计器编写“创建过程”或任何其他DDL语句。这是设计的。