Je suis en train de coder le déclencheur SQL Server 2005. Je veux faire de la journalisation pendant l'exécution du déclencheur, en utilisant l'instruction INSERT dans ma table de journal. En cas d'erreur lors de l'exécution, je souhaite déclencher une erreur et annuler une action qui provoque l'exécution du trigger, mais ne pas perdre les enregistrements du journal. Quel est le meilleur moyen d'y parvenir?Connexion à la table dans le déclencheur SQL Server
Maintenant, mon déclencheur enregistre tout sauf la situation en cas d'erreur - à cause de ROLLBACK. L'instruction RAISERROR est nécessaire pour informer le programme appelant de l'erreur.
Maintenant, mon code de gestion des erreurs ressemble:
if (@err = 1)
begin
INSERT INTO dbo.log(date, entry) SELECT getdate(), 'ERROR: ' + out from #output
RAISERROR (@msg, 16, 1)
rollback transaction
return
end
C'est ce que nous faisons – HLGEM
En effet. J'ai raté cette option, mais votez pour cela. – AlexS