What is “Begin Trans”, “Commit Tran”, “Rollback Tran” and "save tran"

Begin Tran: - It’s a point which says that from this point onwards we are starting the transaction.

Commit Tran: - This is a point where we say we have completed the transaction. From
this point the data is completely saved in to database.

Rollback Tran: - This point is from where we go back to the start point that i.e. “Begin
Tran” stage.

Save Tran: - It’s like a bookmark for rollback to come to some specified state. When we
say “rollback Tran” we go back directly to “Begin Tran”, but what if we want to go back
to some specific point after “Begin Tran”. So “Save Tran” is like book marks which can
be used to come back to that state rather than going directly to the start point.

For Example:

begin tran
save tran a
insert into Dept values('03','xx部门','03', null)
save tran b
insert into Dept values('02','xx',null,null)
if @@error != 0
    begin
      rollback tran b  -- or a
    end
save tran c  
insert into Dept values('04','xx医院','','')   --this is a wrong  code statement
if @@error != 0
    begin
      rollback tran c  --or a,b
    end
commit tran

你可能感兴趣的:(c,null,insert,Go)