SQL INSERT缺少表A到表B中的行

时间:2013-02-12 23:40:17

标签: sql sql-server tsql

我试图将行插入表格'数据'如果他们不存在

对于Export $中的每一行,我需要使用代码来检查数据'对于匹配Period(date)和ID(int)的行 - 如果行已经不存在则应创建它们。

我非常确定我的“不存在”'部分是错误的 - 这是最好的方法吗?谢谢你的帮助

    IF NOT EXISTS (SELECT * FROM Data, Export$ WHERE Data.ID = Export$.ID AND Data.Period = Export$.Period)
    INSERT INTO Data (Period, Performance, ID)
    SELECT Period, [Return], [ID] FROM Export$

2 个答案:

答案 0 :(得分:13)

试试这个:

INSERT INTO Data (Period, Performance, ID)
SELECT Period, [Return], [ID] 
FROM Export$ e
where not exists (
select *
from Data
where  ID = e.ID and Period = e.Period)

答案 1 :(得分:5)

尝试类似的东西,需要调整才能适应你的表格

insert into data
select * from export
left join data on data.id = export.id
                     and data.period = export.period
where data.id is null