我的存储过程中有两个表,一个是实际表,一个是临时表。我正在做的是将数据存入我的临时表。我有临时表中的所有数据,现在我想比较我的实际表中是否有相同的数据;如果没有从临时表插入主表。
create table #X
(
Field_PL varchar(50),
Field_Station varchar(50),
Field_Value varchar(50),
Field_EFox_PL varchar(50),
lasteditdt datetime,
disable bit
)
请查看表格结构。附件是临时表#X,并且主表的结构与X相同。
答案 0 :(得分:0)
如果#X
可能有重复项,并且您不希望使用except
插入这些重复项:
insert into MainTable (Field_PL, Field_Station, Field_Value, Field_EFox_PL, lasteditdt, disable)
select Field_PL, Field_Station, Field_Value, Field_EFox_PL, lasteditdt, disable
from #X
except
select Field_PL, Field_Station, Field_Value, Field_EFox_PL, lasteditdt, disable
from MainTable
如果#X
可能有重复项,并且您想要使用not exists()
插入这些重复项:
insert into MainTable (Field_PL, Field_Station, Field_Value, Field_EFox_PL, lasteditdt, disable)
select
Field_PL
, Field_Station
, Field_Value
, Field_EFox_PL
, lasteditdt
, disable
from #X as x
where not exists (
select 1
from MainTable i
where i.Field_PL = xField_PL
i.Field_Station = xField_Station
i.Field_Value = xField_Value
i.Field_EFox_PL = xField_EFox_PL
i.lasteditdt = xlasteditdt
i.disable = xdisable
)