使用多个临时表创建存储过程

Creating stored procedure with multiple temp tables

所以我创建了一个报告,该报告本质上是运行一个基于多个易失性 table 构建的 DML 语句。我构建它的方式是我的每个临时 tables 基本上都是从先验派生出来的。例如,在我的第一个 table 中,我定义了 'dataset',而我的其他温度 table 定义了我的 "exclusions",然后我最后一对温度 table 将它们组合在一起然后在最终查询中执行它。

我想自动生成此报告以每天提取数据,但我不确定是否要为其创建宏或 sp。这两种方法的更大问题是,我如何才能有效地利用每个温度 table?我考虑过将我的所有 table 组合成一个 GIANT(1000 多行)DML 语句,但肯定有更好、更简单的选择。

非常感谢任何帮助,谢谢!

或者您可以使用 Common Table Expression (CTE) 而不是临时表:

WITH cte1 AS
( 
    SELECT *
    FROM table_1
    WHERE
), cte2 AS
(
    SELECT...
    FROM cte2 
    JOIN ...
    WHERE
)
...
SELECT *
FROM cte_n;

一个CTE可以依赖或不依赖前一个,也可以在最终查询中使用递归和组合结果。