Si vous êtes sûr que l'insertion dans la base de données ne se produira qu'à partir de la fin de votre application, j'opterais pour la première option en créant une procédure et en incluant à la fois le INSERT
déclaration dans une TRANSACTION
bloquer. qui assurera le fonctionnement atomique.
Mais, s'il existe des possibilités d'insertion dans la base de données via une requête ad hoc ou via un outil ETL tiers, vous n'avez pas d'autre choix que d'avoir un déclencheur AFTER INSERT TRIGGER
pour effectuer l'opération d'insertion de journal (2ème option) car il n'y a aucun moyen d'appeler l'autre INSERT
déclaration automatiquement ou explicitement.