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

时间:2010-06-03 07:00:43

标签: sql sql-server-2005 transactions execute

我需要更新某些表已更改的数据库(已添加列)。我想在正确的交易中执行此操作。如果代码执行没有任何问题,那么我将提交更改,否则我将数据库回滚到其原始状态。

我想做这样的事情:

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

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

感谢。

1 个答案:

答案 0 :(得分:4)

Begin Transaction

Alter Table dbo.MyTable
Add Col1 varchar(50)

If @@Error = 0

   Begin
    Commit Transaction
   End
Else
   Begin
    Rollback Transaction
   End

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