I have a following stored procedure on my system.
BEGIN TRY
BEGIN TRAN
SET LOCK_TIMEOUT 10000
UPDATE tbl
COMMIT TRAN
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN
END CATCH
UPDATE tbl went into timeout and ROLLBACK TRAN also failed because of timeout.
Question is: is this possible?
BEGIN TRAN; SET LOCK_TIMEOUT 10000; UPDATE tbl; COMMIT TRAN
? Is it important to hide it if the transaction fails?