你的做法正是我們正在做的。 SQL Server實例位於中央時區,我們在世界各地都有用戶。每個組都維護一個郵件列表,並在創建報告訂閱時手動進行算術運算。有趣的是,SSRS調整到本地用戶的語言(樂融洽HEBDOMADAIRE @ReportName一個ETE執行@ExecutionTime代替@ReportName在@ExecutionTime被執行的默認主題),但沒有提供任何幫助的時區。
如果您有SQL Server的企業版,您可以使用驅動報表訂閱數據。鑑於標準版和企業版之間的成本大幅增加,我懷疑這一特徵是否證明了成本。
其他解決方案需要的東西SSRS之外,但它可以很方便。如果您在其他位置運行其他計劃工具,則可以運行PowerShell腳本來觸發訂閱。例如,您也可以使用此方法在數據加載時運行報告。
PowerShell腳本列出訂閱及其ID:
$server = 'http://server.company.com/reportserver'
$site = '/'
$rs2010 = New-WebServiceProxy -Uri "$server/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential
$subscriptions = $rs2010.ListSubscriptions($site)
$subscriptions | Sort-Object -property path,owner,SubscriptionID -Unique | select Path, Owner, SubscriptionID
PowerShell腳本觸發訂閱:
# Given an SSRS URL and a subscription ID, trigger the subscription.
$server = 'http://server.company.com/reportserver'
$subscriptionid = "55477447-b0b0-433c-a75f-08ad0b6d18bd"
$rs2010 = New-WebServiceProxy -Uri "$server/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential ;
$rs2010.FireEvent("TimedSubscription",$subscriptionid,$null)
謝謝! @gaccardo –