2011-09-18 93 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 
相关问题