代码之家  ›  专栏  ›  技术社区  ›  Shrewdroid

在事务中执行语句-SQL Server 2005

  •  2
  • Shrewdroid  · 技术社区  · 16 年前

    我需要更新一个数据库,其中一些表已更改(列已添加)。我希望在适当的事务中执行此操作。如果代码执行时没有任何问题,那么我将提交更改,否则我将把数据库回滚到其原始状态。

    我想这样做:

    BEGIN TRANSACTION
        ...Execute some sql statements here
    COMMIT TRANSACTION (When every thing goes well)
    ROLLBACK TRANSACTION (When something goes wrong)
    

    请告诉我最好的方法是什么?我知道有一个@@TranCount变量,但不知道它的确切用途。

    谢谢。

    1 回复  |  直到 16 年前
        1
  •  4
  •   codingbadger    16 年前
    Begin Transaction
    
    Alter Table dbo.MyTable
    Add Col1 varchar(50)
    
    If @@Error = 0
    
       Begin
        Commit Transaction
       End
    Else
       Begin
        Rollback Transaction
       End
    

    @@每个SQL语句后都会重置错误,因此必须在执行每个语句后立即检查该错误,以检查是否有任何错误。