如果要在自己的控制下缓存结果结果集,则不能使用任何类型的临时表。您应该使用存储在tempdb中甚至具有自己的结果集缓存数据库的普通用户表。
临时表,bot #local和## shared的生存期由连接控制。如果您的应用程序断开连接,则临时表将被删除,这与您所描述的不兼容。
真正的难题将是在并发运行下填充这些缓存的结果集,而不会混淆(最后得到的结果集包含来自并发报告运行的重复项,而这两个都被认为是“第一次”运行)。
附带说明,sql Server Reporting Services已开箱即用。您可以缓存和共享数据集,也可以缓存和共享报表,它已经可以使用并且已经为您测试。