我必须检查表中是否存在记录,如果有记录则更新其他插入。
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
我必须检查它是否存在于表中,如果它不存在则只插入。我不能使用MERGE,因为它给了我触发器问题,我尝试使用if exists(下面是我的代码)
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
感谢任何帮助
答案 0 :(得分:0)
创建两个单独的语句。一个处理更新,另一个处理插入。
更新
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
)