私は巨大なデータベース(SQL Server)をクリーニングしており、更新ステートメントがテーブルのPKに違反している場合に行を削除できるかどうかを知りたいと思っています。スクリプトを終了せずにSQLスクリプトで主キー違反を処理するにはどうすればよいですか?
私はこのような何かしたい:
UPDATE EMODCONCT SET CODPERLET = '2003' WHERE CODPERLET = '2003BI'
IF "UPDATE VIOLATES PK OF EMODCONCT" THEN
DELETE FROM EMODCONCT WHERE CODPERLET = '2003BI'
END
<DON'T SHOW ANY ERROR AND CONTINUE THE EXECUTION OF THE SCRIPT>
は、この種のエラー、エラーで中断することなく実行を継続するためのコマンドを検出するために、任意のフラグがありますか?
ありがとうございました!
テーブル間のPK/FK関係を正しく設定していれば、pkDataがプライマリテーブルで利用可能でない限り更新することはできません。 – Kaf
だから、PKの値を変更したいのですが、その新しい値が実際に重複している場合は結果を削除してから続行しますか?まず最初に複製するすべての値を最初に削除しないでください。 – Lamak