有先后顺序的,如果你担心会出现脏读:
begin tran
....
commit tran

解决方案 »

  1.   

    用事务处理程序控制!
    出现脏读时:用
    BEGIN TRANSACTION
    ...
    COMMIT TRANSACTION
    ...
    ROLLBACK TRANSACTION
      

  2.   

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED --(默認)
    SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE第一種搶,誰先提交誰就勝
    第二種,第一個用戶提交了的時候,別的用戶不能改也不能看.因為進行了鎖.
    你可以看看以上四種級別.
      

  3.   

    事务的最基本特性之一就是原子性,一个事务只能看到另一个事务开始执行前或执行以后的数据状态。像你说的银行问题 ,要不就
    1:
    begin tran
    update table set
           col1 = col1 + 500
    where ....select col1 from table
    commit tran2:
    begin tran
    update table set
           col1 = col1 - 100
    where ....select col1 from table
    commit tran
    这样无论谁先谁后都无所谓,如果先执行1后执行2则显示1500然后显示1400
    如果先执行2再执行1则先显示900后显示1400
    反正都是1400