SQL - Temp Table 小技巧

  • 50926
  • 0
  • SQL
  • 2015-03-25

摘要:SQL - Temp Table 小技巧

How to copy Table structure to Temp Table

這次遇到的情況是希望把資料暫存,之後再做回寫回實體Table,網路上的搜尋到的建立方式如下

CREATE TABLE #Temp ( ID int, Name char(30) )

 

 

這次我遇到的Table欄位一堆,如果要打完這些欄位應該也花掉不少時間了,有個方法可以快速複製下資料的表格

SELECT TOP 0 * INTO #temp FROM TestTable  ß複製Table的結構至#temp

SELECT * FROM #temp

如此就做到複製表格結構到#temp的效果了

 

How to insert Temp Table to table

INSERT INTO TestTable SELECT * FROM #temp

 

How to know Temp Table exist or not

我在SQL的前後都會加上這段以確保Temp Table有釋放掉,避免錯誤發生

IF Object_id('tempdb..#temp') IS NOT NULL

BEGIN

      DROP TABLE #temp

END

 

【Other】

另外一個題外話,因為需求的關係,我比需將Temp Table內的資料回寫,但是又會有ID重複的情況出現

為了給予最新的ID,我必須將Temp Table內的ID做更新,回寫時才不會出錯,那要如何做到ID那欄位照

順序加上Max(ID)+1、Max(ID)+2 ……以此類推,靈光一閃想到用

Row_number() OVER(ORDER BY id DESC) + (SELECT Max(id) FROM TestTable))

 

其實都是江湖一點訣,說破不值錢。