在下 SQL 查詢時,條件式裡所放的值,有時候不會是單一一個,而是好幾個值。例如:

select * 
from Production.Product 
where ProductID in (1,2,3)

有些情況下,括號內的值可能得動態產生,通常可以在裡面寫子查詢,但並不是每次都能用一個子查詢就找出所有的值,或許得經過多次 SQL 查詢,才能把所有需要的值都找出來,這個時候 Temp Table 就很方便。

下列的語法,可以看到一開始是將查詢的結果寫入 #TempTable 這個 Temp Table ,第二次再使用時,就得用 insert 的語法來做。再來就是 SET IDENTITY_INSERT 這個語法,因為 ProductID 是 Identity key ,所以再第二次寫入 Temp Table 時,必須先將寫入 Identity key 權限打開,特別注意的是,之後一定要權限關起來。

select ProductID, Name, ProductNumber into #TempTable 
from Production.Product where ReorderPoint = 750

SET IDENTITY_INSERT #TempTable ON

insert into #TempTable(ProductID, Name, ProductNumber) 
	select ProductID, Name, ProductNumber 
	from Production.Product where ReorderPoint = 600

SET IDENTITY_INSERT #TempTable OFF

select * from #TempTable
drop table #TempTable
arrow
arrow
    全站熱搜

    卑微研究生 發表在 痞客邦 留言(0) 人氣()