2019-Dec Transaction With Throw Transaction1234567891011121314151617181920212223242526USE [DocumentPacks];BEGIN TRY BEGIN TRANSACTION -- DECLARE -- INSERT -- SOMETHING WENT WRONG WITH THE CODE ABOVE THROW 51000, 'Foo error.', 1; COMMIT TRANSACTIONEND TRYBEGIN CATCH DECLARE @ErrorNumber INT = ERROR_NUMBER(); DECLARE @ErrorLine INT = ERROR_LINE(); DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); DECLARE @ErrorSeverity INT = ERROR_SEVERITY(); DECLARE @ErrorState INT = ERROR_STATE(); IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState);END CATCH References https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-transaction-transact-sql?view=sql-server-ver15 https://stackoverflow.com/questions/31274274/t-sql-throw-exception-within-a-transaction Newer Generate Random Data Older Batching Data Changes