事务的隔离保证你的数据的一致性嘛,启用事务就行了。事务
事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。隔离性由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

解决方案 »

  1.   

    用事务:
    set xact_abort on
    begin transaction
    多条更新语句
    commit transaction
    set xact_abort off
      

  2.   

    我现在不郁闷了,因为刚才我自己的回复内容没有,
    但是时间却变成了2004-10-14 11:....(刚才回复的时间)
    CSDN都能出现这样的问题,我就不用费劲了。
      

  3.   

    谢谢大家的帮助
    但我想说的是 事务这东西我还是知道的,虽然不能把它的性质背出来,但是用还是经常用的
    我又仔细看了自己发的帖子,表达的是不太清楚,
    举个例子也许好点:
    假设数据库中有一个表 table1,另外有一个 XML 文件
    我要在 table1 中添加10条记录,同时也要在XML 文件中添加10个节点。
    按照“事务”的概念,启动事务后,如果在添加第9条记录时出错,
    那么前面的8条记录也要回滚。
    但是现在多了一个XML 文件,如果是在给XML 文件添加到第8个节点时出错
    能做到将前面的7个节点和 table1 中的10条记录也回滚吗?写得越多越不知道自己在说什么?希望大家能尽量明白。
      

  4.   

    想想还真丢脸,一句话里俩错别字。
    不好意思给大家添麻烦了!这回应该没错了吧。在操作数据库的时候,可以通过事务来保证数据的一致性。
    如果是同时操作数据库和XML 文件有没有什么方法做到这一点?
      

  5.   

    可以。你将修改文件放到事务里面。
    如果增加table数据,出错,回滚,不再继续。
    如果增加table数据成功,但是增加xml文件节点出错,照样可以回滚,放弃对表的修改。
    这样可以实现你的要求么?