zoukankan      html  css  js  c++  java
  • sql序列(5)事务

    1,场景:几个操作必须作为同一个单元同时成功或者失败,就应该使用事务

    2,事务的四个属性(ACID):
    原子性:把事务看作是一个单一动作,而不是各个操作的集合
    一致性:事务无论成功与否,都让数据库处于一致状态
    孤立性:每个事务都有明确的界限,一个事务不影响其他运行的事务
    持续性:事务中的数据修改,将永久保持在系统中

    3,事务的描述:
    BEGIN TRANSACTION //开始事务
    COMMIT TRANSACTION //提交事务
    COMMIT WORK
    ROLLBACK TRANSACTION //回滚事务
    ROLLBACK WORK
    SET IMPLICIT_TRANSACTIONS

    4,创建事务
    语句1:
    ================================================
    BEGIN TRANSACTION
    UPDATE USERS SET ID = 2 WHERE ID = 1;
    if(@@error<>0) //判断是否报错如果报错就回滚信息否则提交事务
    BEGIN
    ROLLBACK TRANSACTION
    END
    elseu
    BEGIN
    COMMIT TRANSACTION
    END

    5,使用事务
    语句2:
    ================================================
    try
    {
    SqlTransaction st = null;
    using(SqlConnection con = new SqlConnection(''数据库连接串))
    {
    con.Open();
    st = con.BeginTransaction();
    SqlCommand cmd = con.CreateCommand()
    cmd.CommandText = '<INSERT T-SQL>';
    cmd.TRANSACTION = st;
    SqlCommand cmd_2 = con.CreateCommand()
    cmd_2.CommandText = '<DELETE T-SQL>';
    cmd_2.TRANSACTION = st;
    cmd.ExecuteNonQuery();
    cmd_2.ExecuteNonQuery();
    st.COMMIT();
    }
    }
    catch(Exception ex)
    {
    st.ROLLBACK();
    }









    【附件:】
    1,XML格式展示结果数据:
    语句1:
    ========================================================
    SELECT * FROM USERS FOR XML RAW
    语句2:
    ========================================================
    SELECT * FROM USERS FOR XML RAW, ELEMENTS
    语句3:
    ========================================================
    SELECT * FROM USERS FOR XML AUTO

    2,存储xml流程
    2.1:创建存储xml的表
    语句4:
    ========================================================
    CREATE TABLE XML_L
    (
    XID INT NOT NULL PRIMARY KEY,
    XDOC XML NOT NULL
    )

    INSERT INTO XML_L VALUES(1, '<USERS><USER><ID>1</ID><NAME>L</NAME></USER></USERS>')

    SELECT * FROM XML_L

  • 相关阅读:
    2021.5.10-(叶子相似的树)
    2021.5.8-N皇后(回溯)
    2021.5.6-(雪糕最大数)
    2021.4.23刷题(回溯-全排列)
    可持久化动态图上树状数组维护01背包
    Infinite String Comparision
    第6章 操作系统 存储器管理(二)
    markdown
    操作系统 第6章 存储管理(一)
    操作系统 第五章 死锁 (二)
  • 原文地址:https://www.cnblogs.com/namedL/p/8204562.html
Copyright © 2011-2022 走看看