带有except的Sql临时表

带有except的Sql临时表,sql,join,except,temp-tables,Sql,Join,Except,Temp Tables,我正在尝试将此查询产生的记录插入临时表中。任何帮助或建议都会有帮助 insert into #AddRec select * from stg di right join ED bp on bp.ID = di.ID except select * from stg di inner join ED bp on bp.ID = di.ID 如果您的select返回值与insert table的字段计数匹配,则该操作应该有效 insert into tbl1 (field1,field2)

我正在尝试将此查询产生的记录插入临时表中。任何帮助或建议都会有帮助

insert into #AddRec
select *
from stg di
right join
ED bp
on
bp.ID = di.ID
except
select *
from stg di
inner join
ED bp
on
bp.ID = di.ID 

如果您的select返回值与insert table的字段计数匹配,则该操作应该有效

  insert into tbl1 (field1,field2)
    select field1,field2 from.................
可能有助于简化您的查询

create table #AddRec(id int) ;

insert into #addrec
select  ed.id
from stg right join 
ed on stg.id=ed.id 
where stg.id is null;

select * from #Addrec
如果需要表中的更多字段,请将定义添加到临时表中,并将其添加到选择行中

;WITH Q AS
(
select *
from stg di
right join
ED bp
on
bp.ID = di.ID
except
select *
from stg di
inner join
ED bp
on
bp.ID = di.ID 
)
INSERT INTO #AddRec(... list of fields ...)
SELECT (... list of fields ...) FROM Q
如果要从头开始创建临时表,只需将插入替换为:

SELECT (... list of fields ...) 
INTO #AddRec
FROM Q
最简单的方法

select *
into #AddRec
from stg di
right join ED bp on bp.ID = di.ID
except
select * from stg di
inner join ED bp on bp.ID = di.ID

#AddRec它是一个带有#的表名吗?你能发布更多信息吗?哪个数据库服务器是sql server 2012?#AddRec和其他两个表的模式是什么谢谢你,伊恩,学到了一些新的东西,我不必使用这个表,除非:)如果你能详细说明你的代码到底在做什么,那就更好了。另外,请注意,这个问题已经有将近8年的历史了。你的答案比其他三个有什么改进?