1)CREATE TABLE #TempTable --local临时表
本地临时表只在可见当前会话,并且可以在嵌套的存储过程调用之间共享:http://www.sommarskog.se/share_data.html#temptables
2)DECLARE TABLE @TempTable - 本地表变量e
局部变量的作用域是声明它的批处理,存储过程或语句块。它们可以作为过程之间的参数传递。它们不受交易限制,并且会在回滚之后保留所有行。
3)SELECT * FROM(SELECT * FROM客户)AS不是Temptable --derived表
是与当前查询仅
4)CREATE TABLE ##不是Temptable --global临时可见表
这与#temp表不同之处在于它对所有进程都可见。当创建过程结束时,该表将被删除(但会等到来自其他过程的当前活动完成)。
5)CTE - 公用表表达式
例如CTE:
;WITH YourBigCTE AS
(
big query here
)
SELECT * FROM YourTable1 WHERE ID IN (SELECT ID FROM YourBigCTE)
UNION
SELECT * FROM YourTable2 WHERE ID IN (SELECT ID FROM YourBigCTE)
可以使用相同的CTE命令内多次,甚至递归,和将持续的CTE的持续时间命令。
你错过了一些,看到我的回答 – 2010-05-12 12:31:35
如果你更喜欢我的答案,你可以更改你接受的答案。 – 2010-05-13 11:34:49
虽然你增加了额外的东西,但是我的第一个问题是由Mark :) – StevenMcD 2010-05-13 14:15:16