Thursday, 16 August 2012

Get Sql server Report subscriptions list

The following query will give list of subscriptions with reportName


SELECT s.SubscriptionID,
C.ItemID as ReportID,C.Name as ReportName,C.path as ReportPath,
u.UserName AS ModifiedUser,s.Modifieddate,Schedule.LastRunTime,s.EventType,DeliveryExtension,s.Description,
LastStatus,

CASE WHEN LastStatus LIKE 'Mail sent to%' OR LastStatus LIKE 'The File %' OR LastStatus LIKE '%0 error%' THEN 'Success'
WHEN LastStatus LIKE '%pending%' THEN 'Pending'
WHEN LastStatus LIKE '%Cache refresh succeeded.%' THEN 'CACHE'
WHEN LastStatus LIKE '%Ready%' THEN 'Ready'
ELSE 'Failure' END as Status,


SUBSTRING(ExtensionSettings, LEN('<Name>TO</Name><Value>') + CHARINDEX('<Name>TO</Name><Value>', ExtensionSettings), CHARINDEX('</Value>', ExtensionSettings,
 CHARINDEX('<Name>TO</Name><Value>', ExtensionSettings) + 1) - (LEN('<Name>TO</Name><Value>') + CHARINDEX('<Name>TO</Name><Value>', ExtensionSettings))) AS 'To List',

 CASE CHARINDEX('<Name>CC</Name><Value>', ExtensionSettings) WHEN 0 THEN
  '' ELSE
   SUBSTRING(ExtensionSettings, LEN('<Name>CC</Name><Value>') + CHARINDEX('<Name>CC</Name><Value>', ExtensionSettings), CHARINDEX('</Value>', ExtensionSettings,
   CHARINDEX('<Name>CC</Name><Value>', ExtensionSettings) + 1) - (LEN('<Name>CC</Name><Value>') + CHARINDEX('<Name>CC</Name><Value>', ExtensionSettings)))
END AS 'CC List',
CASE CHARINDEX('<Name>BCC</Name><Value>', ExtensionSettings) WHEN 0 THEN
'' ELSE
SUBSTRING(ExtensionSettings, LEN('<Name>BCC</Name><Value>') + CHARINDEX('<Name>BCC</Name><Value>', ExtensionSettings), CHARINDEX('</Value>', ExtensionSettings,
 CHARINDEX('<Name>BCC</Name><Value>', ExtensionSettings) + 1) - (LEN('<Name>BCC</Name><Value>') + CHARINDEX('<Name>BCC</Name><Value>', ExtensionSettings)))
END AS 'BCC List'

FROM  ReportServer.dbo.[Catalog] c INNER JOIN hvtsql07.ReportServer.dbo.Subscriptions s ON s.Report_OID = c.ItemID
INNER JOIN ReportServer.dbo.Users u ON u.UserID = s.OwnerID
INNER JOIN ReportServer.dbo.ReportSchedule ON  ReportSchedule.SubscriptionID = s.SubscriptionID
INNER JOIN ReportServer.dbo.Schedule  ON   ReportSchedule.ScheduleID = Schedule.ScheduleID

WHERE CONVERT(varchar,Schedule.LastRunTime,112)=CONVERT(varchar,getdate(),112) ORDER BY c.Name

No comments:

Post a Comment