Bonjour j'utilise trasact SQL pour synchroniser 2 bases, une en SQL server et l'autre sous mysql
J'ai crée une procedure qui update une valeur de type var char dans sql serveur dans une colonne de type varchar dans une colonne mysql.
Malheureusement, lorsque j'excute la procedure, j'obtiens l'erreur suivante :
ligne 1 : syntaxe incorrecte vers 'Horizontale'
La ligne incriminée dans sql serveur est la suivante :
"Etui Horizontal noir pince + passant Taille Small (5200/5610...)"

La procedure stocké est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE PROCEDURE Syncro_designation AS
SET NOCOUNT ON
BEGIN 
	DECLARE @IdProduit INTEGER
	DECLARE @Designation  VARCHAR(100)
	DECLARE @command VARCHAR(1000)
	DECLARE FOURNISSEURS CURSOR FOR 
		select id_produit,AR_Design AS Designation from OPENQUERY(web,'select id_produit,sage_ref1, sage_ref2 from produit'),F_ARTICLE where (sage_ref1=AR_Ref) AND (dateDiff(hh,AR_DateModif,getdate())<48 ) AND (AR_sommeil <>1) AND id_produit=3648
 
	OPEN FOURNISSEURS
	FETCH NEXT FROM FOURNISSEURS INTO @IdProduit,@Designation
	WHILE @@FETCH_STATUS = 0
	BEGIN
 
            SET @command='update OPENQUERY(web,"select * from produit")  set description=' + @Designation   + '  where id_produit=' + CAST(@IdProduit as VARCHAR(10))
		EXEC (@command) 
           	FETCH NEXT FROM FOURNISSEURS INTO @IdProduit,@Designation
	END
	CLOSE FOURNISSEURS
	DEALLOCATE FOURNISSEURS
END
GO
Bizarement lorsque je change la variable @designation par le texte :
"Etui Horizontal noir pince + passant Taille Small (5200/5610...)"
cela marche parfaitement
Aurais je oublié qq chose?
Merci encore pour votre aide et longue à ce merveilleux site.
Alex