2

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

我想做这样的事情:

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

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

谢谢。

4

1 回答 1

4
Begin Transaction

Alter Table dbo.MyTable
Add Col1 varchar(50)

If @@Error = 0

   Begin
    Commit Transaction
   End
Else
   Begin
    Rollback Transaction
   End

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

于 2010-06-03T07:13:14.007 回答