什么时候使用cte和temp表?

时间:2018-02-25 02:20:09

标签: common-table-expression temp-tables

我知道这是一个常见问题,但大多数人都会问这两者之间的表现。 我要求的是cte和temp表的用例,以便更好地理解它们的用法

1 个答案:

答案 0 :(得分:0)

使用临时表,您可以使用CONSTRAINT'sINDEX's。您还可以在临时表上创建CURSOR,其中CTE在查询结束后终止(强调单个查询)。

我将通过具有我经验的应用程序的具体用例来回答,以帮助解决我的观点。

我使用的示例企业应用程序中的常见用例如下:

临时表

通常,我们使用临时表来在需要多个查询的相应表格中的INSERTUPDATE之前转换数据。从多个表中收集类似数据,以便操作和处理数据。

有不同类型的订单(order_type1,order_type2,order_type3),所有订单都在不同的TABLE's上,但具有相似的COLUMN's。我们有一个STORED PROCEDURE UNION's所有这些表放入一个#orders临时表和UPDATE's个人建议的订单,具体取决于现有订单。

<强>的CTE

在处理单个查询时,CTE对于可读性非常棒。在使用PIVOT'sAggregates等创建需要使用大量代码行进行分析的报表时,CTE通过将大量查询分成逻辑部分来提供可读性。

有时两者都有。当需要多个查询时。使用CTE分解其中一些查询仍然很有用。


我希望这有用,欢呼!