局部臨時表有兩個特點,一是表名以'#'號作為前綴,二是它只對創建它的會話在創建級和調用堆棧內部級(包括內部的過程,函數,觸發器和動態批處理)可見。局部臨時表的應用場景是,當需要把中間結果臨時保存起來,以便供以后查詢這些臨時數據的時候使用。下面是創建局部臨時表的示例代碼。
USE TSQLFundamentals2008;GO-- 局部臨時表IF OBJECT_ID('tempdb.dbo.#MyOrderTotalsByYear','U') IS NOT NULL DROP TABLE dbo.#MyOrderTotalsByYear;GO-- 創建局部臨時表SELECT YEAR(orders.orderdate) AS orderyear,SUM(orderDetails.qty) AS qty INTO dbo.#MyOrderTotalsByYearFROM Sales.Orders AS ordersLEFT JOIN Sales.OrderDetails AS orderDetails ON orders.orderid = orderDetails.orderidGROUP BY YEAR(orders.orderdate);-- 在當前會話中,從局部臨時表中查詢數據SELECT * FROM dbo.#MyOrderTotalsByYear;
查詢結果:
新聞熱點
疑難解答