我想先运行以下程序:
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查询生成器中运行它,它给了我一个错误。非常感谢任何想法和建议......谢谢!!
答案 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语句。这是设计的。