Bonjour,
je viens ici demander vos lumières car je suis confronté à petit problème.
J'ai relié un serveur MySQL à un SQLServer 2005.
J'ai voulu utiliser des Triggers pour que si ma table a des éléments ajoutés/mis à jour/effacés, cela soit automatiquement appliqué à la table correspondante Mysql.
Mais cela ne marche pas, et d'après SQLPro (si j'ai bien lu ses messages) ce n'est pas possible car ODBC ne supporte pas le T-SQL (corrigez moi si je me trompe).
Du coup, j'essaye de contourner le problème à l'aide d'une procédure stockée, à laquelle je ferai appel une fois par jour via l'Agent SQL Server.
Donc j'ai créé une procédure. Qui semble marcher car la base se remplit... mais à chaque fois cela ne fait qu'ajouter des éléments à la base, à chaque appel de la procédure.
Du coup pour ne pas trop compliquer la chose, je pensais vider la table d'abord via une procédure stockée, et ensuite la remplir.
Seulement cela ne marche pas, j'ai le message d'erreur suivant :
Et voilà en gros ma procédure :Le fournisseur OLE DB "MSDASQL" du serveur lié "Linked_Mysql" a retourné le message "Informations sur la colonne clé insuffisantes ou incorrectes. Trop de lignes sont affectées par la mise à jour.".
Donc est ce possible de supprimer l'intégralité de ma table dans MySQL depuis SQLServer ou j'aurai toujours le message "Trop de lignes sont affectées par la mise à jour" ? Sachant que je remarque qu'il y a bien des lignes effacées dans la base MySQL mais seulement 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 USE [Base] SET QUOTED_IDENTIFIER ON GO as DELETE from OPENQUERY(Linked_Mysql, 'Select * from affaires where afNumero is not Null');
Merci par avance, et j'espère avoir été assez clair!
Partager