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
Partager