zoukankan      html  css  js  c++  java
  • 事务

    属性:

    1.原子性:事务是一个完整的操作,事务的各元素师不可分的。

    2.一致性:事务开始时和完成时,数据必须处于一致的状态。

    3.隔离性:对数据进行修改的所有并发事务是彼此隔离的。

    4.持久性:事务完成后,它对系统的影响是永久的。

    ?

    Transact-SQL使用下列语句来管理事务:

    开始事务:BEGIN TRANSACTION

    提交事务:COMMIT TRANSACTION

    回滚:ROLLBACK TRANSACTION

       public bool SendMessage(Msg_InBoxMessageModel inmodel, Msg_OutBoxMessageModel outmodel, Msg_MessageModel model)

            {

                try

                {

                    using (SqlConnection conn = new SqlConnection(DBConnString))

                    {

                        conn.Open();

                        SqlTransaction trans = conn.BeginTransaction();

                        if (!Create(model, trans: trans))

                        {

                            trans.Rollback();

                            return false;

                        }

                        inmodel.MessageId = model.Id;

                        if (!DALControl.Msg_InBoxMessageDAL.Create(inmodel, trans: trans))

                        {

                            trans.Rollback();

                            return false;

                        }

                        outmodel.MessageId = model.Id;

                        if (!DALControl.Msg_OutBoxMessageDAL.Create(outmodel, trans: trans))

                        {

                            trans.Rollback();

                            return false;

                        }

     

                        trans.Commit();

                    }

                    return true;

                }

                catch (Exception ex)

                {

                    log.Error(ex.Message, ex);

                    return false;

                }

     

            }

    两个数据库连接可以用同一个事务

    1.
    事务开始
    update db1.tb1 --成功
    update db2.tb2 --成功
    事务提交
    2.
    update db1.tb1 --成功
    update db2.tb2 --失败
    db1的操作回滚,不更新
    3.
    update db1.tb1 --失败
    update db2.tb2 --不操作
  • 相关阅读:
    九月学习计划与自我成长
    sqlyog无法连接mysql8.0的处理办法
    MySQL详细的攻略和玩法
    输入net start mysql显示MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。
    MySQL详细安装教程
    2019上半年程序设计年度总结
    PTA12
    C#实现文本文件字符过滤
    C#字符串string和内存流MemoryStream及比特数组byte[]
    C# 流总结
  • 原文地址:https://www.cnblogs.com/viaiu/p/4816768.html
Copyright © 2011-2022 走看看