Avec Sql Server, l'instruction TRY CATCH permet de récupérer des erreurs, mais que faire quand on est dans une transaction.
Voici un modèle qui fonctionne bien.
BEGIN TRY
BEGIN TRANSACTION
--- Faire ce qu'on a a faire ici
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
--- Traiter l'erreur ici
END CATCH
Les points à ne pas oublier :
- L'instruction BEGIN TRANSACTION est juste après le BEGIN TRY (= y a rien entre les 2 instructions)
- Le COMMIT termine le traitement est est juste avant le END TRY (= la aussi y a rien entre les 2 instructions)
- Le test de présence de transaction et le ROLLBACK sont fait dès le début du BEGIN CATCH
Enjoy
Aucun commentaire:
Enregistrer un commentaire