检查记录是否存在然后更新else insert
问题描述:
我必须检查表中是否存在记录,如果有记录,则更新else insert。检查记录是否存在然后更新else insert
Stg_table
Id seq name company
1 1 aaa yyy
1 2 aaa bbb
table
Id seq name company
1 1 aaa yyy
1 2 aaa bbb
现在我有另一行与序列3
Stg_table
Id seq name company
1 1 aaa yyy
1 2 aaa bbb
1 3 aaa www
我要检查,如果这存在于表分期,如果它不存在,只有插入。我不能使用合并,因为它是给我引发的问题,我尝试使用,如果存在(下面是我的代码)
If exists(select 1 from stg_table s
join table t
on s.id=t.id and t.seq=s.seq)
begin
update -----
end
else
begin
insert -----
end
如何过,这些记录会为更新,因为它是满足的条件。我如何在这种情况下插入?
table
Id seq name company
1 1 aaa yyy
1 2 aaa bbb
任何帮助表示赞赏
答
创建两个单独的语句。一个处理更新,另一个处理插入。
更新:
UPDATE t
SET ....
FROM table t
INNER JOIN stg_table s
ON t.id = s.id
AND t.seq = s.seq
插入:
INSERT INTO table (....)
SELECT ..
FROM stg_table s
WHERE NOT EXISTS (
SELECT ...
FROM table t
WHERE t.id = s.id
AND t.seq = s.seq
)