2010-09-24 15 views
-1

請告訴我如何在SQL中創建臨時表格。我是這個領域的新手。如何在SQL中使用臨時表格

+4

爲了什麼數據庫? – 2010-09-24 04:59:54

+1

btw @Atul。如果以下任何答案都是正確答案,請不要忘記單擊答案旁邊的大記號,以便下一個閱讀此答案的人也知道解決方案。 – griegs 2010-09-24 05:09:52

回答

0

假設T-SQL:

DECLARE @ProductTotals TABLE 
(
    ProductID int, 
    Revenue money 
) 

INSERT INTO @ProductTotals (ProductID, Revenue) 
    SELECT ProductID, SUM(UnitPrice * Quantity) 
    FROM [Order Details] 
    GROUP BY ProductID 

UPDATE @ProductTotals 
    SET Revenue = Revenue * 1.15 
WHERE ProductID = 62 

DELETE FROM @ProductTotals 
WHERE ProductID = 60 


SELECT TOP 5 * 
FROM @ProductTotals 
ORDER BY Revenue DESC 

即一個表變量。還有一個內存表 - 而不是DECLARE @ProductTotals使用CREATE TABLE #ProductTotals

使用表變量來保存SPROC /函數生存期間的數據。

在內存表中用於在多個SPROC /子SPROC上保存數據。需要明確放棄。

+0

#ProductTotals表是** NOT **內存中的 - 它們被保存到磁盤。另請注意:雖然#ProductTotals表將參與交易,但@ProductTotals(內存表變量)不會引起某些意外。 – 2010-09-24 05:05:49

+0

@marc_s是的我永遠不會想到#表的名字。它是什麼?它是「臨時表」嗎?如果是這樣的話,那麼這個@所謂的是什麼。關於交易的好處也是。 – RPM1984 2010-09-24 05:08:33

+2

@ProductTotals =內存表中的變量; #ProductTotals =臨時表(在磁盤上,僅用於此連接,連接關閉後消失); ## ProductTotal =全局臨時表,對所有連接都可見,持久化 – 2010-09-24 05:09:51

0
SELECT columnNames INTO #temp FROM TableName  
SELECT * FROM #temp  
DROP TABLE #temp