Bonjour
J'ai besoin de d'aide au moins pour orienter mes recherches car je tourne en rond depuis quelques semaines sur un problème de serveur lié.
Voilà l'idée est simple j'ai d'un côté une base de données sql server 2005 et de l'autre une base mysql. je tente à l'aide d'un déclencheur sur une table sql server 2005 de mettre à jour ma base mysql.
Pour cela j'utilise le déclencheur suivant dans sqlserver 2005 (attention déclencheur de table)
Ensuite si sur ce serveur je lance l'ordre suivant, j'obtiens bien les données du serveur mysql (si je fais un ordre insert, çà fonctionne aussi)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ALTER TRIGGER [dbo].[trg_test_insert] ON [dbo].[table1] AFTER INSERT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here SET XACT_ABORT ON INSERT INTO OPENQUERY (MONSERVERMYSQL, 'select * from dbautorite.autretable') SELECT Id,nom,code FROM INSERTED; END
par contre si je titille le trigger de ma table MSSQL2005 en faisant un insert pour qu'il mette à jour la base MYSQL alors j'obtiens l'erreur suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * from OPENQUERY (MONSERVERMYSQL, 'select id, Nom, code from dbautorite.autretable')
Le fournisseur OLE DB "MSDASQL" du serveur lié "MONSERVERMYSQL" a retourné le message "[MySQL][ODBC 5.1 Driver]Optional feature not supported".
Msg*7391, Niveau*16, État*2, Procédure*trg_test_insert, Ligne*21
L'opération n'a pas pu être effectuée, car le fournisseur OLE DB "MSDASQL" du serveur lié 'MONSERVERMYSQL' n'a pas réussi à démarrer une transaction distribuée.
Voilà qu'en pensez vous en sachant que quelque chose arrive sur le serveur mysql. J'ai (on m'a aidé) vérifié par un tail pour surveiller les requêtes qui sont lancées.
Merci d'avance pour votre aide
Partager