如果要要执行多条update 语句在输入的参数上做了验证,是不是还需要事务保持完整性呢
还有就是如果使用了事务,在事务执行的过程中,服务器发生断电等异常,事务会回滚吗

解决方案 »

  1.   

    对于每一个操作,dbms自动会进行事务处理的,如果没有需要把很多操作集成到一个事务中的话,就没有说一定要设置事务。
    如果出现错误,dbms会自动进行回滚的
      

  2.   

    进行数据库更新时,dbms是先进行写日志,当事务积攒到一定程度的时候,才批量的进行数据更新,
    所以断电的时候,逆向读取日志,然后进行数据恢复
      

  3.   

    (1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。 
    (2):事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。 
    COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。 
    ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。 
    (3):事务运行的三种模式: 
    A:自动提交事务 
    每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。 
    B:显式事务 
    以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。 
    C:隐性事务 
    在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。 
    (4):事务的特性(ACID特性) 
    A:原子性(Atomicity) 
    事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 
    B:一致性(Consistency) 
    事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 
    C:隔离性(Isolation) 
    一个事务的执行不能被其他事务干扰。 
    D:持续性/永久性(Durability) 
    一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 
    注:事务是恢复和并发控制的基本单位。
      

  4.   

     楼上的说得很详细
    如果已经commit了,就不会rollback
      

  5.   


    sql是按事务提交,一条insert也是一个隐式事务,
    如果断电的时候整个事务没有提交,下次启动sql时,就会全部回滚该事务,
    如果提交了,但数据没有及时的写到硬盘,sql会通过事务日志,继续执行该事务到提交数据