SQLServer2008の2つのテーブルからデータを削除する必要があります。
2つのテーブルAとBがあります。それぞれを別々のトランザクションに入れる必要があります。
これは私が使用しているコードです。
BEGIN TRANSACTION;
BEGIN TRY
DELETE from A
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
BEGIN TRANSACTION;
BEGIN TRY
DELETE from B
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SQL Serverで複数のトランザクションとエラー処理を実装するためのより良い方法はありますか?
テーブルごとに個別のトランザクションを配置する必要があります。
トランザクションの1つが失敗すると、エラーが発生します。
EXECUTE後のトランザクション数は、BEGINステートメントとCOMMITステートメントの数が一致していないことを示しています。レコードは他のトランザクションから削除されていません