zoukankan      html  css  js  c++  java
  • Transaction And Lock--事务中使用return会回滚事务吗?

    事务中使用return会回滚事务吗?

    答案:不会,如果在事务中没有显示提交或回滚事务边return,事务不会被提交或回滚,在C#中,如果没有使用连接池,则事务在连接断开和销毁时被强制回滚,如果使用连接池,则事务在连接被再次使用时调用的exec sp_reset_connection存储过程清理掉。如果该连接没有被再次使用或删除,则事务一直存在,便会一直锁住相关资源不释放,照常日志变大,镜像和复制异常等情况。

    测试code:
    --创建测试表
    CREATE TABLE TB5
    (
    ID INT
    )

    测试C# CODE

    SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
                sb.DataSource = "192.168.1.101";
                sb.InitialCatalog = "db1";
                sb.Password = "Auto@sql";
                sb.UserID = "sa";
                sb.IntegratedSecurity = false;
                sb.ConnectTimeout = 60;
                sb.Pooling = true;
                int i = 1000;
                while (i > 0)
                {
                    using (SqlConnection conn = new SqlConnection(sb.ConnectionString))
                    {
                        conn.Open();
                        SqlCommand comm = conn.CreateCommand();
                        comm.CommandText = @"
                    BEGIN TRAN TR1
    INSERT INTO TB5(ID)
    SELECT 1
    RETURN 
                    ";
                        comm.CommandType = System.Data.CommandType.Text;
                        comm.ExecuteNonQuery();
                        conn.Close();
                    }
                    i--;
                    Console.WriteLine(i);
                }
                System.Threading.Thread.Sleep(60 * 1000);
  • 相关阅读:
    trie树模型
    计算机网络概念
    [luogu]1042乒乓球 (模拟)
    [IPUOJ10705]最大连通块 (dfs)
    IPUOJ10701 有障碍的八皇后
    【紫书学习笔记】
    纪念正式写博客的第一天
    Bzoj 1997 [Hnoi2010]Planar题解
    Bzoj 1925 [Sdoi2010]地精部落 题解
    Bzoj 2839 集合计数 题解
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3522965.html
Copyright © 2011-2022 走看看