のためのTRY/CATCH文をBEGIN:リファクタリングはそれはこれらのクエリをリファクタリングすることが可能ですパフォーマンス
BEGIN TRY
UPDATE ETAT_PERSONNE_PRECISION SET ID_PRECISION = 9 WHERE ID_PRECISION = 2
END TRY
BEGIN CATCH
DELETE FROM ETAT_PERSONNE_PRECISION WHERE ID_PRECISION = 2;
END CATCH;
BEGIN TRY
UPDATE ETAT_PERSONNE_PRECISION SET ID_PRECISION = 9 WHERE ID_PRECISION = 3
END TRY
BEGIN CATCH
DELETE FROM ETAT_PERSONNE_PRECISION WHERE ID_PRECISION = 3;
END CATCH;
BEGIN TRY
UPDATE ETAT_PERSONNE_PRECISION SET ID_PRECISION = 9 WHERE ID_PRECISION = 8
END TRY
BEGIN CATCH
DELETE FROM ETAT_PERSONNE_PRECISION WHERE ID_PRECISION = 8;
END CATCH;
BEGIN TRY
UPDATE ETAT_PERSONNE_PRECISION SET ID_PRECISION = 12 WHERE ID_PRECISION = 7
END TRY
BEGIN CATCH
DELETE FROM ETAT_PERSONNE_PRECISION WHERE ID_PRECISION = 7;
END CATCH;
情報:
制約キー私のテーブルの上に
ALTER TABLE ETAT_PERSONNE_PRECISION ADD CONSTRAINT PK_ETAT_PERSONNE_PRECISION PRIMARY KEY CLUSTERED
(
[ID_ETAT_PERSONNE] ASC,
[ID_PRECISION] ASC
)
@Heinzi次のレコード(id_etat_personne、id_precision)が存在する場合、私は、だから、このテーブル – Mercer
に 'contraint key'を持っているので、私は削除します:'(1、2 )、 '(1,9)'、 '(2,2)'、 '(3,2)'の場合、最初のtry/catchブロックはそれらの4つの*すべてを削除します。これは本当にあなたが望むものですか? – Heinzi
@Heinzi 'id_precision(2,3,7,8)'は廃止されました。すべての 'id_precision(2,3,8)' を 'id_precision = 9'に、' id_precision(7) 'を' id_precision ' = 12 ' – Mercer