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