2013-04-26 7 views
2

Я пытаюсь вставить записи, поступающие из этого запроса, в таблицу temp. Любая помощь или предложение будут полезныSql temp table with except

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 
+0

#AddRec это имя_таблицы с #? – zod

+0

можете ли вы разместить немного больше информации - какой сервер sql server server 2012? что такое схема #AddRec и других 2 таблиц –

+0

http://stackoverflow.com/questions/10656088/how-to-insert-into-select-but-one-field-is-from-somewhere-else – zod

ответ

2

This может помочь это упрощает ваш запрос немного.

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 

Если вам нужно больше полей из таблиц добавить определения в временную таблицу и добавить их в избранной линии

+0

Спасибо, Ян, узнал что-то новое. Мне не нужно использовать исключение. :) – knahs

0

если ваш выбор возвращает совпадение с полем числа вставки таблицы, это должно работать!

insert into tbl1 (field1,field2) 
    select field1,field2 from................. 
0
;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 

 Смежные вопросы

  • Нет связанных вопросов^_^