私はテーブルと配列を持っていて、それらをマージしたいと思っています。
構造 (t=ターゲット、s=ソース):
ID gID
----------- -----------
13 1
14 1
15 1
16 1
17 2
18 2
19 2
t.ID=s.ID および t.gID=s.gID の場合、何も起こりません。s.ID < 0 の場合は挿入します。s.ID が存在しない場合は削除します。
マージクエリでこれを構築することはできません:
merge tableT as t
using @array as s
on (t.ID = s.ID) and (t.gID=s.gID)
when not matched and s.ID < 0 then
insert into
when not matched by source then delete;
@array の各行の gID が 1 の場合、クエリは gID=2 のすべてを削除します。ただし、影響を受けるのは gID=1 だけです。
誰かがこれを解決する方法を知っていますか?