gpt4 book ai didi

sql - SSRS - 在多个数据集中重用临时表

转载 作者:行者123 更新时间:2023-12-03 03:16:21 25 4
gpt4 key购买 nike

我有一份关于 SSRS 的报告,其中有 14 个子报告。所有这些子报表都从同一存储过程读取,但以不同的方式呈现数据(因为计算不同)。我的SP写法如下:

IF OBJECT_ID('tempdb.dbo.#blabla') IS NOT NULL
BEGIN DROP TABLE #blabla END
SELECT a,b,c,d,e
INTO #blabla
WHERE a='bla'

IF @type = 1 --report 1
BEGIN
SELECT ....
END
IF @type = 2 --report 2
BEGIN
SELECT .....
END

每个报告依此类推。

我在存储过程的开头创建了 3 个临时表,它们用于提供要转换的数据。问题在于,对于每个子报告,表都会不断重新创建自己,这导致报告需要很长时间才能创建。是否有任何可用的解决方法可以重用在存储过程开始时创建的表?

最佳答案

由于您使用的是单独的子报表,因此每个子报表的查询不会使用临时表所在的同一事务。当查询连接丢失时,SQL Server 会删除表。

您可以尝试将所有子报告合并为一个。如果您选中数据源中的使用单个事务框,它们将允许您为每个查询使用#TEMP表。

另一种方法是使用全局临时表 - ##TEMP。全局临时表不会自动删除,并且可以被其他子报表使用。

关于sql - SSRS - 在多个数据集中重用临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com