This pattern works well:USE [yourDatabase] GO IF OBJECT_ID('ThisSproc', 'P') IS NOT NULL DROP PROCEDURE ThisSproc; GO CREATE PROCEDURE ThisSproc @PersonId INT, @NewMoneyCollected MONEY = 0 AS BEGIN BEGIN TRY BEGIN TRANSACTION; UPDATE OrganizationTripFunding SET Balance = MoneyCollectedAllYear + @NewMoneyCollected WHERE PersonId = @PersonID; COMMIT TRANSACTION; END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; DECLARE @ErrorNumber INT = ERROR_NUMBER(); DECLARE @ErrorLine INT = ERROR_LINE(); ......