暫存資料表(@, #, ##)的差別
reference:https://dotblogs.com.tw/daniel/2018/01/19/174836
之前開發時,用@,#來建立暫存Table的方式都用過,但也沒特別想過差異。
之前面試時筆試遇到,覺得不錯的問題,把它紀錄下來
1.#TempTable
只能在自己的SessionScope使用,無法跨查詢分業。使用完要手動drop掉,或是關掉查詢分頁
分頁1
分頁2
2.##TempTable
跟#TempTable差不多,但可跨查詢分業(SessionScope)。使用完要手動drop掉,或是關掉查詢分頁
分頁1
分頁2
3.@TempTable
將一個TABLE當做變數使用,會自動DROP掉(同個查詢分頁,如果第二次查詢@TempTable沒有重新DECLARE,@TempTable就無法使用)
分頁1 第一次執行
分頁1。沒有重新DECLARE第二次執行
分頁2
總結:
#TempTable 跟 @TempTable的差別
1.#TempTable會自動drop,@TempTable不會
2.#TempTable可以再拿來做後續應用(ex:INSERT DATA),@TempTable則不行