6

我有一个创建数百个作业的 Report Services 实例。这些作业采用串行格式(即 xxxxxx-xxx-xxxxx-xxxx-xxxx),并且在 SSMS 中的作业部分视图混乱。有没有办法隐藏这些工作?

4

2 回答 2

11

快速执行此操作的方法是编辑 SSMS 用于获取作业列表的底层过程,以忽略“报告服务器”创建的任何作业。

  1. 右键单击并修改msdb.dbo.sp_help_category(系统存储过程)以调出过程代码。
  2. 在第 19 行附近,@where_clause从更改VARCHAR(500)VARCHAR(MAX)
  3. 在第 96/97 行附近,您会注意到最后一条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/

于 2012-07-30T15:12:48.040 回答
0

我按照上述步骤操作,但在 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 '

于 2020-05-06T14:53:20.650 回答