DB内の重複レコードを削除しようとしました。唯一の違いは、一意識別子であるPrimaryKeyです。私は約3000のエントリを見ているすべてで、だまされている約1500エントリを持っています。だから私は約60件のエントリを(receivedOn日付に基づいて)断ち、私のコードを実行して30に減らし、OH CRAPは消えました!私が試したコードは次のとおりです。SQLデータベースの重複エントリを削除しようとすると、すべてのレコードが削除されました。何が悪かったのか?
DELETE dupes
FROM [emailTable] dupes, [emailTable] fullTable
WHERE (dupes.ReceivedOn > '2009-08-18 23:59:59.999' AND dupes.ReceivedOn < '2009-08-20 00:00:00.000')
AND (dupes.emlPath = fullTable.emlPath)
AND NOT (dupes.GUID = fullTable.GUID)
私の目標は重複を削除することです。私は気にしません...しかし、私は2つのエントリのうちの1つがサーバーにとどまる必要があります...誰かが私が間違っていたことについていくつかの光を当てることができますか?
たぶん、あなたはすでにこれをやっているが、私は何も削除またはいずれかの方法で、生産データを変更しません最初にROLLBACKを使用してトランザクション内でクエリが動作することを検証することなく、あなたが正しいと分かったら、ROLLBACKをCOMMITに変更してください。 –
私はそうではありません!おそらく参考になるでしょう。これはどうすればいいですか? – swolff1978
BEGIN TRAN *あなたのコードはここにあります。* ROLLBACK TRAN COMMIT TRANあなたが期待している数字のような行が表示されたら、COMMIT TRANを強調表示して実行してください。 –