如何在事务提交或回滚时尝试捕获或返回成功标志 - SQL Server

时间:2016-10-12 09:40:06

标签: sql-server stored-procedures transactions

我在存储过程中有一个SQL事务,我想知道如何在事务成功提交或在任何时候失败的情况下返回成功消息,即。 rollbacked,我想在MVC C#的代码中使用该标志。

2 个答案:

答案 0 :(得分:0)

您可以写为:

声明@success位= 1

开始交易 开始尝试   - 这里的脚本主要内容 结束尝试

开始捕捉     回滚事务     设置@success = 0 结束捕获

if(@success = 1) 开始     提交事务 端

答案 1 :(得分:0)

下面的代码可能会对此有所帮助,

BEGIN TRY
  BEGIN TRANSACTION
    -- sql update\delete statement goes here 
 COMMIT TRANSACTION    
END TRY

BEGIN CATCH 
  IF (@@TRANCOUNT > 0)
   BEGIN
      ROLLBACK TRANSACTION
      PRINT 'Error ...'
   END 
    SELECT
        ERROR_NUMBER() AS Error#,        
        ERROR_MESSAGE() AS ErrorMsg
END CATCH