Quand il est nécessaire de vérifier @@trancount > 0 dans le bloc try catch?

Parfois j'ai vu l'extrait de code suivant. Quel est le if @@trancount > 0 nécessaire avec begin try? Deux d'entre eux? Ou c'est un moyen sûr(best practice) pour vérifier toujours en cas de restauration avant de le vérifier?

begin tran
begin try
  ... just several lines of sql ...
  if @@trancount > 0 commit tran
end try
begin catch
  if @@trancount > 0 rollback tran
end catch
InformationsquelleAutor ca9163d9 | 2012-12-21