所以我有这个临时表,其结构如下:

col1    col2    col3    col3
intID1  intID2  intID3  bitAdd

我正在使用选择查询来合并此临时表的值并存储
它进入同一个临时表中。col3不是联合查询的一部分,我将
以后需要它来更新表。

所以我这样做是这样的:
Insert into  #temptable
(
intID1,
intID2,
intID3
)
select intID1,intID2,intID3
From
#temptable

UNION

select intID1,intID2,intID3
From
Table A

问题是我只想添加临时表中尚不存在的行,这样做会添加已经存在的行的副本(因为联合会返回一行)我的联合查询中当前临时表中是否存在?

最佳答案

EXCEPT 简洁好用

INSERT INTO  #temptable (intID1, intID2, intID3)
SELECT intID1,intID2,intID3 FROM TableA
EXCEPT
SELECT intID1,intID2,intID3 FROM #temptable

关于使用Union的SQL插入应仅添加不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9299551/

10-09 00:36