来接分
为了必免是送分贴
问一点问题:
我SQL语法不太明这里问一下
BEGIN TRANSACTION
ROLLBACK
COMMIT TRANSACTION
是什么意思BEGIN TRANSACTION  事务开始?
ROLLBACK  退出事务?
COMMIT TRANSACTION  执行事务?

解决方案 »

  1.   

    BEGIN TRANSACTION  事务开始?
    ROLLBACK  退出事务?           --這個是回滾
    COMMIT TRANSACTION  执行事务? --這個是事务
      

  2.   

    BEGIN TRANSACTION  事务开始?
    ROLLBACK  退出事务?  -----这个是回滚
    COMMIT TRANSACTION  执行事务?
      

  3.   

    一般,使用事务前,设置Set Xact_abort on使得事务内任一SQL出错整个事务都回滚。
    BEGIN TRANSACTION  事务开始
    ROLLBACK  回滚事务
    COMMIT TRANSACTION  提交事务
      

  4.   

    BEGIN TRANSACTION
    標記明確的本機交易的起點。BEGIN TRANSACTION 會以 1 遞增 @@TRANCOUNT。
    ROLLBACK TRANSACTION
    將外顯或隱含的交易復原至交易的開頭,或復原至交易中的安全點。COMMIT TRANSACTION
    標示成功的隱含或使用者自訂交易的結尾。如果 @@TRANCOUNT 為 1,則 COMMIT TRANSACTION 自交易開始就會使執行的所有資料修改成為資料庫的永久部份、釋出連線所保存的資源,並使 @@TRANCOUNT 遞減至零。如果 @@TRANCOUNT 大於 1,則 COMMIT TRANSACTION 只會使 @@TRANCOUNT 減 1。
      

  5.   

    刚才那贴测试过吗在触发器中加BEGIN TRANSACTION好像有点问题的
      

  6.   

    BEGIN TRANSACTION  事务开始?  也就是说我理解对
    ROLLBACK  退出事务?           --這個是回滾   回滚是不是重新来一次
      

  7.   

    就这还翻了一下午的SQL书????
    ROLLBACK就是回到事务执行前的状态,不是重新来一次
      

  8.   

    Haiwer(海阔天空) ( ) 信誉:138    Blog   加为好友  2007-07-03 18:06:39  得分: 0  
     
       刚才那贴测试过吗在触发器中加BEGIN TRANSACTION好像有点问题的
    --------------------------------------------------------------------------------
    应该没问题,上面的代码是测试回滚的情况.请在您的机器上试一下.
     
      

  9.   

    BEGIN TRANSACTION  事务开始
    ROLLBACK  回滚事务
    COMMIT TRANSACTION  提交事务
      

  10.   

    hellowork(一两清风):
    触发器中 
    BEGIN TRANSACTION  --事务开始

    COMMIT TRANSACTION --如果未遇到错误则提交事务,保存插入
    可以去掉因为触发器本身已经开了事务的了
    你可以在触发器中加
    print @@TRANCOUNT
    来查看事务的层数
      

  11.   

    hellowork(一两清风) :
      是的,如果有需要在触发器中更新别的表失败时,要求该失败并不影响触发器本身的操作,那是需要启动多一个事务。
      一般情况下,是需要回滚所有事务的。
    ps:
      我下午测试过你的代码
      

  12.   

    Haiwer(海阔天空):
    多谢关注!
      

  13.   

    BEGIN TRANSACTION  --事务开始
    ROLLBACK           --回滾事务
    COMMIT TRANSACTION  --事务结束begin tran
    ....
    if @@error<>0
    begin
      ROLLBACK tran
      return
    end
    ....
    commit tran