J'ai un souci sous Enterprise Manager, que je vais vous exposer vite fait avec un exemple.
J'ai un trigger sur une table, qui se lance sur l'évènement Update.
Dedans j'ai ce bout de code (en gros
).
Code :
- If Exists
- (
- Select 1
- From [MaTable]
- )
- Select 1
- Raiserror('erreur je_lance_une_erreur', 16, 1)
|
Sous l'analyseur de requête, quand j'update un enregistrement de la table, ça me lance bien l'erreur du Raiserror (le code continue).
Sous Enterprise Manager, quand j'update un enregistrement de la table, ça me monte bien un message d'erreur, en m'indiquant le message du Raiserror.
Code :
- Set @strRequete='If Exists (Select 1 From [MaTable]) Select 1'
- Execute(@strRequete)
- Raiserror('erreur je_lance_une_erreur', 16, 1)
|
Sous l'analyseur de requête, l'erreur du Raiserror se lance bien.
Sous Enterprise Manager, plus aucun message d'erreur ne s'affiche, ça se contente de rollbacker automatiquement la transaction (graphiquement on perd la modification faite dans le champ).
Comment ça se fait ?
C'est un bug absolument génant, voire bloquant. J'ai absolument besoin de pouvoir afficher des messages d'erreur sous Enterprise Manager.
Note: je précise que je suis obligé de passer par une requête construite & donc un Execute, car la vraie requête est le résultat de concaténation de variables & de résultats de fonctions.
---------------
Everyone's dancing furiously! - L'Europe, j'en ai plein les godasses, l'Europe, ça me file la chiasse