2016-11-09 5 views
0

レコードが存在するかどうかを確認しなければなりません。レコードが存在するかどうかをチェックして、他のものを更新します。

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(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

、2つの別々のステートメントを作成して認識されます。更新を処理するものと挿入を処理するもの。

更新:

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 
) 
関連する問題