【发布时间】:2012-07-28 06:27:59
【问题描述】:
我有一个创建数百个作业的 Report Services 实例。作业采用串行格式(即 xxxxxx-xxx-xxxxx-xxxx-xxxx),并且在 SSMS 中的作业部分视图混乱。有什么办法可以隐藏这些工作吗?
【问题讨论】:
标签: sql-server reporting-services sql-server-2008-r2 ssms
我有一个创建数百个作业的 Report Services 实例。作业采用串行格式(即 xxxxxx-xxx-xxxxx-xxxx-xxxx),并且在 SSMS 中的作业部分视图混乱。有什么办法可以隐藏这些工作吗?
【问题讨论】:
标签: sql-server reporting-services sql-server-2008-r2 ssms
执行此操作的快速方法是编辑 SSMS 用于获取作业列表的底层过程,以忽略“报告服务器”创建的任何作业。
msdb.dbo.sp_help_category(系统存储过程)调出程序代码。@where_clause 从 VARCHAR(500) 更改为 VARCHAR(MAX)
EXECUTE 语句,就在此行之前添加以下内容:-- Ignore Reporting Services Jobs IN SSMS SET @where_clause += N' AND CASE WHEN name = ''Report Server'' AND ( SELECT program_name FROM sys.sysprocesses where spid = @@spid) = ''Microsoft SQL Server Management Studio'' THEN 0 ELSE 1 END = 1 '
有关更多信息,请参阅此答案所依据的原始文章:
http://timlaqua.com/2012/01/hiding-ssrs-schedule-jobs-in-ssms/
【讨论】:
[msdb].[dbo].[sp_help_job]。我不确定,您需要进一步研究
我按照上面的步骤,但是在 sp_help_category 存储过程中添加了一个变量:
DECLARE @ShowSSRS BIT
SELECT @ShowSSRS = ShowSSRS FROM ShowSSRS
ShowSSRS 是我添加到 msdb 数据库的一个表,它有一个位字段,也称为 ShowSSRS,它可以让我在真假之间切换。通常我将其设置为 false,因为我们有很多 SSRS 报告使列表变得混乱。当我需要对其进行故障排除时,我将其设置为 true,然后刷新它们都会出现。我实际上有一个列出所有作业的 SSRS 报告,所以我知道哪个 GUID 是哪个作业的。
在第 96/97 行附近添加的代码中,我只是检查了变量:
IF @ShowSSRS = 0
SET @where_clause += N'
AND
CASE
WHEN
name = ''Report Server''
AND (
SELECT program_name
FROM sys.sysprocesses
where spid = @@spid) = ''Microsoft SQL Server Management Studio'' THEN 0
ELSE 1
END = 1 '
【讨论】: