4
4
'------------------------------------------------------------------------
5
5
*/
6
6
7
+ :setvar _server " Server1"
8
+ :setvar _user " ***username***"
9
+ :setvar _password " ***password***"
10
+ :setvar _database " ReportServer"
11
+ :connect $(_server) - U $(_user) - P $(_password)
12
+
13
+ USE [$(_database)];
14
+ GO
15
+
16
+
17
+ DECLARE @all_value AS VARCHAR (100 )
7
18
DECLARE @ReportFolder AS VARCHAR (100 )
8
19
DECLARE @ReportName AS VARCHAR (100 )
9
20
DECLARE @EmailLike AS VARCHAR (100 )
@@ -14,6 +25,7 @@ DECLARE @EventStatus AS VARCHAR(50)
14
25
DECLARE @Current AS VARCHAR (50 )
15
26
DECLARE @LastSubscriptionDate AS DATETIME
16
27
28
+ SET @all_value = ' <ALL>'
17
29
SET @ReportFolder = ' <ALL>'
18
30
SET @ReportName = ' <ALL>'
19
31
SET @EmailLike = NULL
@@ -24,21 +36,13 @@ SET @EventStatus = '<ALL>' -- status from ReportServer.dbo.ExecutionLog
24
36
SET @Current = ' <ALL>'
25
37
SET @LastSubscriptionDate = NULL -- getdate()-1
26
38
27
- :setvar _server " Server1"
28
- :setvar _user " ***username***"
29
- :setvar _password " ***password***"
30
- :setvar _database " ReportServer"
31
- :connect $(_server) - U $(_user) - P $(_password)
32
-
33
- USE [$(_database)];
34
- GO
35
-
39
+ * /
36
40
37
41
;WITH
38
42
report_users
39
43
AS
40
44
(
41
- SELECT UserID, SimpleUserName = UPPER (RIGHT (UserName,(LEN (UserName)- CHARINDEX (' \' ,UserName)))) FROM dbo .Users
45
+ SELECT UserID, UserName, SimpleUserName = UPPER (RIGHT (UserName,(LEN (UserName)- CHARINDEX (' \' ,UserName)))) FROM dbo .Users
42
46
)
43
47
,
44
48
report_catalog
49
53
, c .CreatedById
50
54
, c .ModifiedById
51
55
, c.[Type]
52
- , c .Name
56
+ , c.[ Name]
53
57
, c.[Description]
54
58
, c .Parameter
55
59
, ReportCreationDate = CONVERT (DATETIME , CONVERT (VARCHAR (11 ), c .CreationDate , 13 ))
56
60
, ReportModifiedDate = CONVERT (DATETIME , CONVERT (VARCHAR (11 ), c .ModifiedDate , 13 ))
57
61
, ReportFolder =
58
62
CASE
59
63
WHEN c .Path = ' /' + c .Name THEN ' '
60
- ELSE SUBSTRING (c .Path , 2 , Len (c .Path )- Len (c .Name )- 2 )
64
+ ELSE SUBSTRING (c.[ Path] , 2 , Len (c.[ Path] )- Len (c.[ Name] )- 2 )
61
65
END
62
66
, ReportPath = c.[Path]
63
67
, UrlPath = ' http://' + Host_Name () + ' /Reports/Pages/Folder.aspx?ItemPath=%2f'
64
68
, ReportDefinition = CONVERT (VARCHAR (MAX ),CONVERT (VARBINARY (MAX ),c .content ))
65
69
FROM
66
70
dbo .Catalog AS c
67
- WHERE c .Type = 2
71
+ WHERE c.[ Type] = 2
68
72
)
69
73
,
70
74
subscription_days
252
256
, sch .DaysOfMonth
253
257
, sch.[Month]
254
258
, sch .MonthlyWeek
255
- , JobName = sj .name
259
+ -- , JobName = sj.name
256
260
, sch .ScheduleName
257
261
, sch .ScheduleDays
258
262
, sch .SchDaySun
271
275
dbo .Subscriptions AS s
272
276
LEFT JOIN dbo .Notifications AS n ON n .SubscriptionID = s .SubscriptionID AND s .Report_OID = n .ReportID
273
277
LEFT JOIN dbo .ReportSchedule AS rs ON s .SubscriptionID = rs .SubscriptionID
274
- LEFT JOIN MSDB .dbo .sysjobs AS sj ON sj .name = CAST (rs .ScheduleID AS VARCHAR (255 ))
278
+ -- LEFT JOIN MSDB.dbo.sysjobs AS sj ON sj.name = CAST(rs.ScheduleID AS VARCHAR(255))
275
279
LEFT JOIN subscription_schedule AS sch ON rs .ScheduleID = sch .ScheduleID
276
280
WHERE
277
281
1 = 1
@@ -321,7 +325,7 @@ SELECT
321
325
, s .DaysOfMonth
322
326
, s.[Month]
323
327
, s .MonthlyWeek
324
- , s .JobName
328
+ , JobName = NULL -- , s.JobName
325
329
, s .ScheduleName
326
330
, s .ScheduleDays
327
331
, s .SchDaySun
@@ -336,12 +340,12 @@ SELECT
336
340
, s .Flags
337
341
, s .RecurrenceType
338
342
, s.[State]
339
- , EventStatus = el .Status
343
+ , EventStatus = el.[ Status]
340
344
, EventDateTime = el .TimeEnd
341
345
FROM
342
346
report_catalog AS c
343
347
INNER JOIN report_subscription AS s ON s .Report_OID = c .ItemID
344
- LEFT OUTER JOIN (SELECT b .ReportID , b .Status , b .TimeEnd
348
+ LEFT OUTER JOIN (SELECT b .ReportID , b.[ Status] , b .TimeEnd
345
349
FROM dbo .ExecutionLog b
346
350
INNER JOIN (SELECT ReportID, MAX (TimeEnd) AS TimeEnd
347
351
FROM dbo .ExecutionLog
@@ -351,17 +355,34 @@ FROM
351
355
LEFT OUTER JOIN report_users AS urm ON c .ModifiedById = urm .UserID
352
356
LEFT OUTER JOIN report_users AS usc ON s .OwnerID = usc .UserID
353
357
LEFT OUTER JOIN report_users AS usm ON s .ModifiedByID = usm .UserID
354
- WHERE c .Type = 2
355
- AND (SUBSTRING (s .ExtensionSettings , LEN (' <Name>TO</Name><Value>' ) + CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings ), CHARINDEX (' </Value>' , s .ExtensionSettings , CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings ) + 1 ) - (LEN (' <Name>TO</Name><Value>' ) + CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings )))
356
- LIKE ' %' + @EmailLike + ' %' OR @EmailLike IS NULL
357
- OR CASE CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ) WHEN 0 THEN ' ' ELSE SUBSTRING (s .ExtensionSettings , LEN (' <Name>CC</Name><Value>' ) + CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ), CHARINDEX (' </Value>' , s .ExtensionSettings , CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ) + 1 ) - (LEN (' <Name>CC</Name><Value>' ) + CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ))) END
358
+ WHERE
359
+ 1 = 1
360
+ AND c.[Type] = 2
361
+ AND (@all_value IN (@ReportFolder) OR c .ReportFolder IN (@ReportFolder))
362
+ AND (@all_value IN (@ReportFolder) OR CHARINDEX (@ReportFolder, c .ReportPath ) > 0 )
363
+ AND (@all_value IN (@ReportName) OR c.[Name] IN (@ReportName))
364
+ AND (@all_value IN (@EventStatus) OR el.[Status] IN (@EventStatus))
365
+ AND (@all_value IN (@Current) OR CASE WHEN s .ScheduleEndDate IS NULL THEN ' Current' WHEN s .ScheduleEndDate IS NOT NULL THEN ' Non Current' END = @Current)
366
+ AND (@all_value IN (@SubscriptionStatus) OR s .SubscriptionLastStatus LIKE ' %' + @SubscriptionStatus + ' %' )
367
+ AND (s .LastRunTime >= @LastSubscriptionDate OR @LastSubscriptionDate IS NULL )
368
+ AND
369
+ (
370
+ (SUBSTRING (s .ExtensionSettings , LEN (' <Name>TO</Name><Value>' ) + CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings ), CHARINDEX (' </Value>' , s .ExtensionSettings , CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings ) + 1 ) - (LEN (' <Name>TO</Name><Value>' ) + CHARINDEX (' <Name>TO</Name><Value>' , s .ExtensionSettings )))
371
+ LIKE ' %' + @EmailLike + ' %' OR @EmailLike IS NULL
372
+ )
373
+ OR
374
+ (
375
+ CASE CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings )
376
+ WHEN 0 THEN ' '
377
+ ELSE SUBSTRING (s .ExtensionSettings , LEN (' <Name>CC</Name><Value>' ) + CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ), CHARINDEX (' </Value>' , s .ExtensionSettings , CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings ) + 1 ) - (LEN (' <Name>CC</Name><Value>' ) + CHARINDEX (' <Name>CC</Name><Value>' , s .ExtensionSettings )))
378
+ END
358
379
LIKE ' %' + @EmailLike + ' %'
359
- OR CASE CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings ) WHEN 0 THEN ' ' ELSE SUBSTRING ( s . ExtensionSettings , LEN ( ' <Name>BCC</Name><Value>' ) + CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings ), CHARINDEX ( ' </Value>' , s . ExtensionSettings , CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings ) + 1 ) - ( LEN ( ' <Name>BCC</Name><Value>' ) + CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings ))) END
360
- LIKE ' %' + @EmailLike + ' %' ) -- search for a name in the email to field
361
- AND ( ' <ALL>' IN (@EventStatus) OR el . Status IN (@EventStatus))
362
- AND ( ' ALL' = @SubscriptionStatus OR s . SubscriptionLastStatus LIKE ' %' + @SubscriptionStatus + ' %' )
363
- AND ( ' <ALL>' IN (@ReportFolder) OR c . ReportFolder IN (@ReportFolder))
364
- AND ( ' <ALL>' IN (@ReportFolder) OR CHARINDEX (@ReportFolder, c . ReportPath ) > 0 )
365
- AND ( ' <ALL>' IN (@ReportName) OR c . Name IN (@ReportName))
366
- AND ( ' <ALL>' IN (@Current) OR CASE WHEN s . ScheduleEndDate IS NULL THEN ' Current' WHEN s . ScheduleEndDate IS NOT NULL THEN ' Non Current' END = @Current )
367
- AND ( s . LastRunTime >= @LastSubscriptionDate OR @LastSubscriptionDate IS NULL )
380
+ )
381
+ OR
382
+ (
383
+ CASE CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings )
384
+ WHEN 0 THEN ' '
385
+ ELSE SUBSTRING ( s . ExtensionSettings , LEN ( ' <Name>BCC</Name><Value>' ) + CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings ), CHARINDEX ( ' </Value>' , s . ExtensionSettings , CHARINDEX (' <Name>BCC</Name><Value>' , s . ExtensionSettings ) + 1 ) - ( LEN ( ' <Name>BCC</Name><Value>' ) + CHARINDEX ( ' <Name>BCC</Name><Value>' , s . ExtensionSettings )))
386
+ END
387
+ LIKE ' %' + @EmailLike + ' %' )
388
+ )
0 commit comments