2つのテーブルのいずれにも存在しないデータを削除するクエリのロジックを書く際に問題が発生しました。2つのテーブルとの差分を取得し、SQL Serverで削除する
たとえば、私はテーブル "ステージ"と "親"を持っています。私はユニークなアイデンティティレコード(複数のプライマリキー)に複合プライマリキーを使用しています。
段構造とデータ
S_Column1(Primary) | PRIDATA1 | PRIDATA4
S_Column2(Primary) | PRIDATA2 | PRIDATA5
S_Column3(Primary) | PRIDATA3 | PRIDATA6
S_Column4 | DJUC | JDNC
S_Column5 | DSSDC | JDDOS
親構造及びデータ
P_Column1(Primary) | PRIDATA1 | PRIDATA4 | PRIDATA7
P_Column2(Primary) | PRIDATA2 | PRIDATA5 | PRIDATA8
P_Column3(Primary) | PRIDATA3 | PRIDATA6 | PRIDATA9
P_Column4 | DJUC | JDNC | FFED
P_Column5 | DSSDC | JDDOS | NHUY
は上記構造と二つのテーブルのデータのちょうどサンプルです。 基本的には、 PRIDATA7 PRIDATA8
とPRIDATA9
を主キーとする行を削除するクエリを作成します。そのエントリはSTAGE TABLEには存在しないためです。
私は熟練していないですが、私はJOIN
を使用して一致するデータを見つけると、そのエントリのステージテーブルに存在しない
PS親テーブルからのデータの残りの部分を削除する必要があります知っている:私は使用していますこれはトリガーの中にあります。
ありがとうございます! ?Select 1? – Wocugon
Existsはデータを返さないブールtrue/false。Selectの任意のデータが実行されるので、1を選択するだけで不必要な作業が少なくなります。 – Serg