我可以在 SSRS 报告中获取并显示上次 运行 缓存日期吗?

Can I get and display the Cache Last Run Date in a SSRS Report?

有没有办法从缓存刷新页面获取 SSRS 报告的最后 运行 日期并将其显示在报告中?我希望用户知道上次刷新数据的时间。

您可以直接查询 ReportServer 数据库来完成此操作:

SELECT MAX(els.TimeEnd) AS LastCacheRefresh
FROM dbo.ExecutionLogStorage AS els
    INNER JOIN dbo.Catalog AS cat ON els.ReportID = cat.ItemID
WHERE els.RequestType = 2 --Refresh Cache
    AND els.Status = 'rsSuccess'
    AND cat.Name = 'MyReport'

另外仅供参考,Microsoft 不支持直接查询 ReportServer 数据库,这意味着 fields/schema 可能会在更高版本的 SSRS 中发生变化。

很抱歉为旧线程做出贡献,但没有找到很多关于这个问题的点击率,所以我想添加这个:

如果您在源查询中包含计算字段,则在查询为 运行 时对其进行评估,并与其余数据一起记录。例如:

select 字段1 , getdate() 作为 QueryDateTime 从 SQLServerTable

然后您可以在报告中将该值用作 min/max/first(根据定义,每条记录都相同)。

这必须由服务器提供数据来完成,而不是作为 SSRS 中的计算字段,因为这些是在 运行 时间评估的,与 now() 表达式或全局执行时间变量相同.

一个缺点当然是您正在记录数据并存储它,然后在提取数据时必须检索一堆冗余数据,因此从纯粹主义者的角度来看它并不是很有效I/O。我怀疑在大多数情况下,单个日期值的一列的成本并不过分。