2つのテーブルがあり、行の正確なコピーが2番目のテーブルに存在する場合は、最初のテーブルから行を削除する必要があります。
MSSQLサーバーでこれを行う方法の例を誰かが持っていますか?
2つのテーブルがあり、行の正確なコピーが2番目のテーブルに存在する場合は、最初のテーブルから行を削除する必要があります。
MSSQLサーバーでこれを行う方法の例を誰かが持っていますか?
まあ、ある時点で、すべての列をチェックする必要があります - 参加することもできます...
DELETE a
FROM a -- first table
INNER JOIN b -- second table
ON b.ID = a.ID
AND b.Name = a.Name
AND b.Foo = a.Foo
AND b.Bar = a.Bar
それでうまくいくはずです... もありますCHECKSUM(*)
が、これは役立つだけです-ハッシュの競合を防ぐために、実際の値を確認する必要があります。
SQL Server 2005を使用している場合は、intersectを使用できます。
delete * from table1 intersect select * from table2
以下の疑似コードがそれを行うと思います..
DELETE FirstTable, SecondTable
FROM FirstTable
FULL OUTER JOIN SecondTable
ON FirstTable.Field1 = SecondTable.Field1
... continue for all fields
WHERE FirstTable.Field1 IS NOT NULL
AND SecondTable.Field1 IS NOT NULL
ただし、Chris の INTERSECT の投稿ははるかにエレガントであり、外部結合基準をすべて書き出す代わりに、将来それを使用します :)
DISTINCT クエリを試して、2 つのテーブルを結合します。
asp/php などのスクリプト言語を使用して、出力を一連の挿入ステートメントにフォーマットし、テーブルを再構築して結果の一意のデータにすることができます。