2011-09-18 43 views
0

我必須創建一個臨時表......但問題是如果多個用戶將使用系統沒有辦法區分它們的臨時表。所以我想在每張桌子上放一張ID面。這將是唯一的ID。 任何建議如何做到這一點?tsql - 如何爲臨時表分配一個ID

這種獨特的ID是存在於我的選擇查詢:

SELECT TABLE2.ID, TABLE2.NAME, TABLE2.ADDRESS, TABLE2.PHONE, INTO ##TEMP_TABLE 
FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.NAME = TABLE2.NAME 
GROUP BY TABLE2.ID, TABLE2.NAME, TABLE2.ADDRESS, TABLE2.PHONE; 

我如何可以追加這個ID與臨時表?

+0

執行'temp'表需要有'## global'知名度?另外你的選擇查詢中唯一的'id'在哪裏?如果它是唯一的,那麼併發用戶可能共享一個表,因爲它們的行不會發生衝突。 –

回答

1

爲什麼不使用本地臨時表而不必擔心呢?只需要用一個#號標記它們即可。

+0

如果我打算使用單個#標記,則此表格不會與其他用戶的表格混合使用。假設如果user1創建#table1並且用戶4創建#table 1 ...它不會被搞砸嗎? – CPDS

+0

沒有。它們是該用戶和連接的本地用戶。當連接關閉時,它們被丟棄。 – starskythehutch

+0

非常感謝。 – CPDS

0

爲什麼不直接使用表變量孤獨,只是把Table2.Id s轉換它...這完全消除所有這些問題......

Declare @Ids Table (id integer primary key not null) 
Insert @Ids(id) 
Select Distinct t2.ID 
    From Table1 t1 Join Table2 t2 
     On T2.Name = T1.Name 

那麼無論昱歐需要在以後的其他表2數據,jkust執行joion該臨時表變量... - 從表2只這些行得到的東西......

Select <table2 column data> 
From Table2 t2 Join @Ids i on i.id = t2.Id 
相關問題