SQLサーバー2012を使用しています。 同じ構造の2つのテーブルがあります。 (ID、C2、C3、C4の4つの列があるとします) Table1からTable2にデータをコピーします。SQLサーバーの複合主キーから重複を削除
2つのテーブルの唯一の違いは、Table1にはローカルIDが 'ID'フィールドに含まれ、テーブル2にはグローバルIDが含まれていることです。
ローカルIDとグローバルIDの間のこのマッピングを含む別の3番目のテーブルがあります。 (複数のローカルIDの一つのグローバルIDにマッピングすることができる)
例:ロシア ID「ABCD」はグローバルIDとすることができる中国で123 ID「CDEF」は、ロシアのabcdの従って123 グローバルIDであってもよいです基本的に中国のcdef(このマッピングはtable3に格納されています)
私は、Table1にあるローカルIDに対応するtable3のGlobalIDを取得し、table2に挿入します。
表2には、列ID + C2に定義された主キー制約があります。
問題は、データが重複する可能性が高いことです。そのため、ID + C2の異なる組み合わせのみを挿入する必要があります。 (クラスタ化PK)
誰か助けてもらえますか?これは混乱している場合はごめんなさい。
私は今このクエリを持っていますが、T1からT2にデータをコピーするときに重複を排除しないため、PKでエラーが発生します。
INSERT INTO TABLE2
(ID,
C2,
C3,
C4)
SELECT T3.ID,
T1.C2,
T1.C3,
T1.C4
FROM TABLE1 T1
JOIN TABLE3 T3 ON T1.ID = T3.ID
JOIN TABLE2 T2 ON T2.ID = T1.ID
移動またはコピーしますか? (つまり、元の場所にデータを保持しますか?) – jarlh
[良いSQL質問をするためのヒント](http://meta.stackoverflow.com/a/271056/2835541)をお読みください。私は、サンプルコードを投稿するか、少なくともあなたのDDLを投稿することをお勧めします。 –
@ChrisPickford - こんにちはクリス、私はスクリプトを作成するための助けを求めているので、ここでサンプルコードをどのように提供できるかはわかりません。 – Newbie