2016-06-10 11 views
0

Ich bin ein brandneuer Junior SQL Developer. Ich habe mehrere Berichte geerbt, die sich im Berichts-Manager befinden. Einige von ihnen scheinen Abonnements eingerichtet zu haben, aber sie enthalten ungültige E-Mail-Adressen.Suchen und Ändern von E-Mail-Adressen für ein Report Manager-Berichtsabonnement

Ich verstehe, dass ich jeden dieser Berichte und ihre Abonnements einzeln über den Berichts-Manager ändern kann, indem ich auf den Bericht klicke, auf Verwalten, Abonnements usw .; Dies scheint jedoch eine riesige Verschwendung von Zeit und Aufwand zu sein und bietet keine solide Lösung für die Zukunft.

Ich würde viel lieber Zeit auf etwas verbringen, das mehr Sinn macht. Gibt es eine Möglichkeit, auf alle Berichte von Report Manager-Berichten von SSMS zuzugreifen? Ich würde gerne sehen, welche E-Mail-Adressen im Moment fest codiert sind und dann ändern, um aus einer Liste von Mitarbeiter-E-Mails in unserer HR-Datenbank auszuwählen. Auf diese Weise, wenn sich eine E-Mail später ändert, oder wenn wir eine Person aus ALLEN Abonnements entfernen möchten, wird es nicht viel Zeit in Anspruch nehmen.

Weiß auch jemand, wie man die lächerlichen Jobbenennungskonventionen vermeidet, die mit Report Manager zu kommen scheinen? Ich weiß nicht, welcher Bericht "3AC1BB6F-D782-46DD-99F5-CCA1E6257091" ist gebunden, aber wenn es geändert werden könnte, um etwas wie "ReportName + MicrosoftTypicalBSNamingCvention", wäre das in Ordnung und würde einige machen Sinn.

Ich hoffe, dass das Sinn macht. Vielen Dank im Voraus für das Teilen Ihrer Erfahrungen und Kenntnisse mit mir. : ^)

Antwort

3

Hier ist eine Abfrage, mit der Sie Abonnements anzeigen können, vorausgesetzt, Sie wissen natürlich, wo sich die Berichtsserver-Datenbank befindet.

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 '%[email protected]%' -- this can be more than an email, like a paramater value 
ORDER BY A.LastRunTime DESC 

Dies ist eine Abfrage, mit der Sie ein Abonnement aktualisieren können.

Verwenden Sie das Update vorsichtig, oder Sie können die Subskriptionen von Hand neu aufbauen.

Ordnen Sie sich nicht mit den vom Berichts-Manager erstellten Abonnement-Jobs an. Wenn Sie den Job für ein bestimmtes Abonnement finden müssen, versuchen Sie einfach sicherzustellen, dass jedes Abonnement einen etwas einzigartigen Zeitplan hat. Sortieren Sie die Jobliste nach dem letzten Ausführungsdatum, um das letzte Mal zu finden, dass ein Abonnement ausgelöst wurde. Zum Ausführen rechtsklicken. Das funktioniert sowieso gut genug für mich.