sub change_dboption_true(){ my ( $dbh, $DB ) = @_; my $option = "single user"; my $switch = "true"; my $sql; ==> eval { ==> $dbh->{AutoCommit} = 0; # enable transactions $sql = "use master"; $$dbh->do($sql) or $app->error($FATAL,"Can't do SQL statement [ $sql ] :: $DBI::errstr"); FAILS HERE $sql = "sp_dboption $DB, \"$option\", $switch"; $$dbh->do($sql) or $app->error($FATAL,"Can't do SQL statement [ $sql ] :: $DBI::errstr"); $sql = "use $DB"; $$dbh->do($sql) or $app->error($FATAL,"Can't do SQL statement [ $sql ] :: $DBI::errstr"); $sql = "checkpoint"; $$dbh->do($sql) or $app->error($FATAL,"Can't do SQL statement [ $sql ] :: $DBI::errstr"); ==> $dbh->commit; # manually commit the changes ==> } ==> if ($@) { ==> # handle the error ... insert other code here ==> $dbh->rollback; ==> } $$dbh->disconnect; }#end change_dboption_true