我需要从SQL Server 2008中的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;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在SQL Server中实现多个事务和错误处理?
我需要为每个表放置单独的事务.
当其中一个事务失败时,我收到错误.
EXECUTE之后的事务计数表示BEGIN和COMMIT语句的数量不匹配.记录不会从其他交易中删除
试试这个:
BEGIN TRANSACTION;
BEGIN TRY
DELETE from A
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
END CATCH
BEGIN TRANSACTION;
BEGIN TRY
DELETE from B
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
END CATCH
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16238 次 |
| 最近记录: |