Intedera
Om du vill cacha resultatuppsättningar under din egen kontroll, kan du inte använda temporära tabeller, av något slag. Du bör använda vanliga användartabeller, lagrade antingen i tempdb eller till och med ha en egen cachedatabas för resultatuppsättningar.
Temp-tabeller, bot #local och ##shared har en livstid som kontrolleras av anslutningen/anslutningarna. Om din applikation kopplas bort raderas temptabellen, och detta fungerar inte bra med det du beskriver.
Det verkliga svåra problemet kommer att vara att fylla dessa cachade resultatuppsättningar under samtidiga körningar utan att blanda ihop saker och ting (sluta upp med resultatuppsättningar som innehåller dubbletter från samtidiga rapportkörningar som båda trodde var den "första" körningen).
Som en sidoanteckning gör SQL Server Reporting Services redan detta direkt. Du kan cachelagra och dela datauppsättningar, du kan cachelagra och dela rapporter, det fungerar redan och har testats för dig.