2013-12-16 1 views
0

это «правильный» способ сделать это?Как слить вставить столбец из таблицы temp и параметры из хранимой процедуры?

merge dbo.tableA as tgt 
using (select #temptable.pkid, @spParam1 as col1, @spParam2 as col2 from #temptable) 
as src 
on tgt.pkid = src.pkid 
when not matched by target when 
    insert (pkid, thing1, thing2) values (src.pkid, col1, col2) 
; 

Есть ли другой или лучший способ?

+0

Если вы хотите вставить/обновить/удалить что-то более, вы должны это объяснить. у вас должна быть цель использовать слияние, как вам нужно, или есть более одного dml. – KumarHarsh

ответ

1

без использования слияния этот sql будет работать на вас.

insert into dbo.tableA (pkid, thing1, thing2) 
    select #temptable.pkid, @spParam1 as col1, @spParam2 as col2 from #temptable src 
    left join dbo.tableA as tgt on tgt.pkid = src.pkid