Bonjour,
Voici la situation :
J'ai une procédure qui exécute entre autre un insert sur une table, là le trigger insert de la table prend le relai et effectue des tests, en cas de soucis il envoie un raiserror.
Mon problème c'est que je ne sais pas comment savoir dans ma procédure si mon insert via le trigger a renvoyé une erreur.
Dans ma procédure j'ai tenté un truc du style mais cela ne marche pas :
@@ERROR reste désespérément à 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO MA_TABLE (x, y,z) values (a,b,c); IF @@ERROR <> 0 Return;
J'ai trouvé une solution de contournement, je sauvegarde le prochain identifiant de ma table avant l'insert, le prochain identifiant après l'insert et je les compare, s'ils sont égaux, l'insert c'est pas bien passé et je sors de la procédure.
N'y a-t-il pas un moyen plus propre ?
Merci d'avance
Aerofly
Partager