Preciso usar um bloco try..catch e uma reversão explícita em um procedimento do SQL Server?

Se eu estou codificando um procedimento do SQL Server (2008r2) e eu o envolvo em uma transação, eu preciso colocá-lo explicitamente em um bloco try..catch e, em seguida, chamar explicitamente a reversão no bloco catch, ou ele sairá e reverter o mesmo por conta própria?

ou seja:

Como isso:

    begin transaction

    begin try
    delete from....

    insert into...
    end try
    begin catch
    rollback transaction
    return
    end catch

    commit transaction

Compare com:

    begin transaction
    delete from....

    insert into...
    commit transaction

Obrigado por qualquer ajuda.

questionAnswers(3)

yourAnswerToTheQuestion