use strict; use DBI; use Execption::Class:TryCatch; ###opening connections try eval{ my $sql = "BEGIN TRAN \n"; my $sql1 = "Update dead_test1 set a = '11' where b= 2 \n"; my $sql2 = "WAITFOR DELAY '00:00:05'\n" my $sql3 = "Update dead_test set a = '22' where b= 1 \n"; my $sql4 = "COMMIT \n" ; $sql = $sql.$sql1.$sql2.$sql3.$sql4; $sql = $dbh->pepare($sql); $sql ->execute(); }; if catch(my $err){ print $err; eval { $dbh - >rollback }; }