簡體   English   中英

查找和更改報告管理器報告訂閱的電子郵件地址

[英]Locate & Alter Email Addresses for a Report Manager Report Subscription

我是一個全新的Junior SQL Developer。 我繼承了幾個報表,這些報表位於報表管理器上。 其中一些似乎已設置訂閱,但其中包含無效的電子郵件地址。

我知道我可以通過單擊報表,轉到“管理”,“訂閱”等,一次通過“報表管理器”修改每個這些報表及其訂閱。 但是,這似乎是浪費時間和精力,並且無法為未來提供一個非常可靠的解決方案。

我寧願花時間在更有意義的事情上。 有什么方法可以從SSMS訪問我的所有Report Manager報告訂閱? 我希望能夠看到它們現在被硬編碼為哪些電子郵件地址,然后對其進行修改以從我們的HR數據庫中的員工電子郵件列表中進行選擇。 這樣,如果稍后更改電子郵件,或者如果我們想從所有訂閱中刪除一個人,則不會花費大量時間。

此外,有人知道如何避免報表管理器附帶的荒謬的工作命名約定嗎? 我不知道與報告“ 3AC1BB6F-D782-46DD-99F5-CCA1E6257091”相關聯,但是如果可以將其修改為默認值,例如“ ReportName + Microsoft'sTypicalBSNamingCovention”,那就可以了。感。

我希望這是有道理的。 預先感謝大家與我分享您的經驗和知識。 :^)

當然,這是一個查詢,使您可以查看訂閱,假設您知道Report Server數據庫在哪里。

SELECT A.SubscriptionID, A.Report_OID, B.Name, 
Path, A.LastRunTime, A.Description, C.UserName AS Owner, A.LastStatus, A.ExtensionSettings
FROM Subscriptions A INNER JOIN Catalog B
ON A.Report_OID = B.ItemID
INNER JOIN Users C
ON A.OwnerID = C.UserID
WHERE A.ExtensionSettings LIKE '%name@domain.com%' -- this can be more than an email, like a paramater value
ORDER BY A.LastRunTime DESC

您可以使用此查詢來更新訂閱。

UPDATE Subscriptions SET
ExtensionSettings = REPLACE(CAST(ExtensionSettings AS nvarchar(max)), 'name', 'new_name')
WHERE ExtensionSettings LIKE '%name@domain.com%'

請謹慎使用更新,否則最終可能會手工重建訂閱。

不要弄混報表管理器創建的訂閱作業。 如果您需要為特定的訂閱找到工作,只需嘗試確保每個訂閱都有一個唯一的時間表。 按上次運行日期對作業列表進行排序,以查找上次訂閱被觸發的時間。 右鍵單擊以運行。 無論如何,這對我來說已經足夠好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM