[SQL Server] Mettre à jour une table liée via la commande OPENQUERY
-- =============================================
-- Author: Zouhaier KHARROUBI
-- Create date: 12 Janvire 2017
-- Description: Mettre à jour une table liée via la commande OPENQUERY
-- =============================================
--Eviter d'utiliser la requête ci-doussous precqu'elle écrase le contenu
--de toute la table liée Ma_Base.Clients avec le premier enregistrement trouvé dans la table Clients
UPDATE OPENQUERY(serveur_lie,'SELECT Id_Client,Nom_Client,Prenom_Client,Num_Tel FROM Ma_Base.Clients;')
SET
Nom_Client = T2.Nom_Client
,Prenom_Client = T2.Prenom_Client
,Num_Tel = T2.Num_Tel
FROM OPENQUERY(serveur_lie,'SELECT Id_Client,Nom_Client,Prenom_Client,Num_Tel FROM Ma_Base.Clients;') T1
JOIN Clients T2 ON T2.Id_Client=T1.Id_Client
--Voici la bonne requête qui permet de mettre à jour correctement la table liée Ma_Base.Clients
--via le contenu de la table Clients. Le clé Id_Client permet de faire correctement la jointure
--Entre les deux tables
UPDATE T1
SET
T1.Nom_Client = T2.Nom_Client
,T1.Prenom_Client = T2.Prenom_Client
,T1.Num_Tel = T2.Num_Tel
FROM OPENQUERY(serveur_lie,'SELECT Id_Client,Nom_Client,Prenom_Client,Num_Tel FROM Ma_Base.Clients;') T1
JOIN Clients T2 ON T2.Id_Client=T1.Id_Client