Bonjour à tous,
je rencontre un problème peut-être seulement de syntaxe de mon instruction MERGE :
Mon but est d'incrémenter des tables d'un serveur vers un autre (d'où le serveur lié). De plus j'ai des colonnes avec des types geography (d'où le OPENQUERY)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select * from openquery ([Linkserver], 'MERGE INTO [Serveur\Instance].BDD.[SCH].[TBLE] AS target USING Linkserver.BDD.[SCH].[TBLE] AS source ON source.PK=target.PK WHEN NOT MATCHED BY TARGET THEN INSERT ([Colonne1],[Colonne2]) VALUES (source.[Colonne1],source.[Colonne2]);' )
Un simple SELECT sur mon serveur lié via OPENQUERY fonctionne sans souci mais voilà le message d'erreur retourné avec le MERGE :
OLE DB provider "SQLNCLI11" for linked server "SQLPRAADA" returned message "Deferred prepare could not be completed.".
Msg*8180, Niveau*16, État*1, Ligne*1
Statement(s) could not be prepared.
Msg*5315, Niveau*16, État*1, Ligne*1
The target of a MERGE statement cannot be a remote table, a remote view, or a view over remote tables.
Auriez-vous une idée pour m'éclairer ?
Merci d'avance
Flo
Partager