我在某个日期时间段(即 05/01/2012 到 05/31/2012)的数据库上运行复杂查询列表。然后我需要对 06/01/2012 到 06/30/2012 运行相同的查询。然后加入结果以用于报告目的。
在查询中,我使用了几个表变量来保存临时数据。因为数据库很大,所以表变量也很大。有没有办法可以重用这些表变量?
DROP,截断将不起作用。我必须从@table 中删除所有数据吗?如果是这样,它会很慢吗?因为它有很多数据,我是否必须对 @table 进行批量删除?
顺便说一句,由于系统的设计方式,我必须将所有查询放在一个 SP 文件中,不能调用函数或其他 SP。
谢谢
==============================
查询中没有循环。它的工作原理如下:
选择.....选择......更新......加入......
对日期 05/01/2012 到 05/31/2012 进行一组查询。然后需要对 06/01/2012 到 06/30/2012 进行同一组查询。
在查询中,里面有很多逻辑,所以我们不能将这两个组合成一组查询。由于系统设计的原因,我们不能调用函数或SP进行查询。必须执行第一组查询,然后依次执行第二组查询。
问题是数据太多,@table 太大。如果我们可以重用@table,它将解决问题。
谢谢
================================
是的,现在,相同的代码,对于 2 个不同的日期时间间隔重复两次。但是,在代码中,它有一些逻辑内部,基于日期时间的差异不同的过程。抱歉,我无法发布实际代码。但是,这个过程就像一个SP,以不同的日期时间段作为参数。
但是,在这种情况下我不能使用 SP/function,所以必须对相同的代码进行两次硬编码。理想情况下,每次我重复代码时都需要使用不同的@table(现在,我需要重复3次),但是由于数据大小,如果我重复3次@table太大(每次需要多个@table做逻辑部分)。
也许我最好使用临时表?所以我可以在开始新的“重复”时放弃它?
谢谢