Bonjour à tous,

je rencontre un problème peut-être seulement de syntaxe de mon instruction MERGE :

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]);'
)
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)
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