SQL transaction template / skeleton

by pietman 20. November 2009 18:23
BEGIN TRANSACTION;
BEGIN TRY
      select * from ......
      update .....
      save TRANSACTION whatever
     
      update ......
    RAISERROR ('now we throw this error as if naturally occured', 18, 10 );
     
      update .....
      COMMIT TRANSACTION; -- it will not reach this code because of forced error
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION whatever;
        -- or ...
            -- IF XACT_STATE() <> -1
           -- ROLLBACK TRANSACTION ProcedureSave;
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;
    SELECT @ErrorMessage = ERROR_MESSAGE();
    SELECT @ErrorSeverity = ERROR_SEVERITY();
    SELECT @ErrorState = ERROR_STATE();
      --or re raise the error as below
  /*  RAISERROR (@ErrorMessage, -- Message text.
               @ErrorSeverity, -- Severity.
               @ErrorState -- State.
               );*/
END CATCH

Tags:

SQL SERVER

Add c0mment




  Country flag
biuquote
  • Comment
  • Preview
Loading


About ...

pietman celliersPietman Celliers
Bitlink  Ltd
bitlinkit.com