set xact_abort et essayez de les attraper ensemble

j'ai un bloc try catch dans mon sp avec juste une instruction insert dans le coup d'essayer. le hic, vérifiez le code d'erreur si c'est pk violation, si c'est pour faire la mise à jour. mais quelques fois, j'obtiens "La transaction en cours ne peut être engagée et ne supporte pas les opérations d'écriture dans le fichier journal. Annuler la transaction.

Non validable transaction est détectée à la fin du lot. La transaction est annulée." j'ai donc ajouté xact_abort on, mais ensuite, je reçois "nombre de Transactions après EXECUTE indique des différences de nombre de lancer et valider les déclarations." et j'ai trouvé ceci.
http://www.ashishsheth.com/post/2009/08/14/Set-XACT_ABORT-ON-and-TryCatch-block-in-Sql-Server-2005.aspx

si cela vrai. mon code catch pas fonctionner si il y a une erreur dans mon bloc try avec xact_abort on?

OriginalL'auteur satuday | 2013-04-05