Pour insérer des données dans une base SQL Server, pas de soucis, on utilise un objet SQL Server Destination. Et si on veut les triggers, on coche la case dans les propriétés de l'objet (sinon, pas de triggers). Jusqu'ici, pas de problèmes. Mais si on veux faire la même chose via un objet OLE DB Destination ?

Voyons voir : je pose un objet de ce type, je choisis une destination table ou view (au passage, je ne vois que les tables, je suppose que le support des views doit nécessiter une manipulation ou concerner d'autres types de serveur). Je choisis la table et je teste : les triggers ne s'exécutent pas. Grrr !!!

OK, pas de problèmes, je change de table à SQL Command. Je cherche rapidement dans l'aide et je trouve une référence indiquant qu'il fuat utiliser une syntaxe avec le préfixe '?'. Je tape ma commande EXEC blabla ?parametre. J'appuie sur OK et je me fais insulter à coup d'erreur SQL Client.

Zen. Je fouille un peu et j'en arrive à la conclusion suivante : la commande doit être de type SELECT (sur une table voir sur une view, je n'ai pas testé ce second cas). Je fais donc un select sur la table en question. Je valide, pas d'erreurs, je fais le mapping et le test. Et là, les triggers marchent.

J'aurais aimé trouver comment lancer une procédure stockée spécifique mais ce sera dans une autre aventure...