我有一个创建数百个作业的 Report Services 实例。这些作业采用串行格式(即 xxxxxx-xxx-xxxxx-xxxx-xxxx),并且在 SSMS 中的作业部分视图混乱。有没有办法隐藏这些工作?
问问题
1656 次
2 回答
11
快速执行此操作的方法是编辑 SSMS 用于获取作业列表的底层过程,以忽略“报告服务器”创建的任何作业。
- 右键单击并修改
msdb.dbo.sp_help_category
(系统存储过程)以调出过程代码。 - 在第 19 行附近,
@where_clause
从更改VARCHAR(500)
为VARCHAR(MAX)
- 在第 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 回答