摘要: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))
其實都是江湖一點訣,說破不值錢。