It will remain open until you COMMIT , ROLLBACK , or the connection is closed and that recession is killed.
This will block other processes and cause all other problems.
As a rule, always check as shown below in the CATCH block to make sure that you have closed the cleanliness.
IF @@TRANCOUNT > 0 ROLLBACK
or
WHILE @@Trancount > 0 BEGIN ROLLBACK END
source share