[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