加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – SQL Server:存储过程事务

发布时间:2020-12-12 16:34:56 所属栏目:MsSql教程 来源:网络整理
导读:你好我有一些存储过程来创建我的网站上的产品和其他东西.现在我必须在一个交易中运行其中的一些.这是可能的,还是只能为交易制定存储过程? 我可以说些什么吗 BEGIN TRAN"1. stored procedure""2. stored procedure"COMMIT 解决方法 要添加到上面的其他答案,您
你好我有一些存储过程来创建我的网站上的产品和其他东西.现在我必须在一个交易中运行其中的一些.这是可能的,还是只能为交易制定存储过程?

我可以说些什么吗

BEGIN TRAN
"1. stored procedure"
"2. stored procedure"
COMMIT

解决方法

要添加到上面的其他答案,您可能需要添加一些错误处理:
BEGIN TRAN

BEGIN TRY

   EXEC P1

   EXEC P2

   COMMIT TRAN

END TRY
BEGIN CATCH

  ROLLBACK TRAN

END CATCH

用C#代码进行更新(我个人觉得将trans代码从sprocs和数据层中保存起来容易得多 – 使得在稍后阶段更容易构建存储过程):

using (var conn = new SqlConnection(...))

    trans = conn.BeginTransaction();

    try
   {
       ...call P1 using transaction
       ...call P2 using transaction

       trans.Commit();
   }
   catch
   {
       trans.RollBack();
       throw;
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读