bonjour,

dans une config avec deux windows 2003 server et deux sql server 2000 sp4,
via SQL Query Analyser, je peux exécuter parfaitement en local sur un serveur :


INSERT test VALUES (1,1,'aaa');
select * from test;


pour travailler directement dans une bd locale, ou:


INSERT sgbd03.BD_TEST.dbo.test VALUES (11,1,'aaa');
select * from sgbd03.BD_TEST.dbo.test;


pour travailler dans la bd du serveur sgbd03.

Maintenant, si au lieu d'utiliser le SQL Query Analyser, je place
INSERT sgbd03.BD_TEST.dbo.test VALUES (11,1,'aaa'); dans un trigger,
j'obtiens l'erreur :


Server: Msg 7391, Level 16, State 1, Procedure TR_TEST_LINK, Line 16
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: La nouvelle transaction ne peut pas s'inscrire dans le coordinateur de transactions spécifié. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].




J'ai testé ceci sans résultat :

- mettre la requete du trigger avec BEGIN DISTRIBUTED TRANSACTION
- vérifier la config DCOM sur des deux serveurs ainsi : http://www.howtogeek.com/howto/windo...rver-2003-sp2/


J'arrive pas a comprendre pourquoi cela fonction via le SQL Query analyser et pas via mon trigger...

merci d'avance pour votre aide.

nico