Jointures SQL Serveur entre des serveurs distants

join sql

Ce document montre comment réaliser une jointure entre un serveur de bases de données SQL Serveur et un autre serveur distant en utilisant une connexion OLE DB

Dans l'analyseyr de requête de MS Sql Serveur,  il est possible d'éxécuter une requête via une connexion directe en OLE DB. lors de l'éxécution d'une requête. LA syuntaxe SQL correspondante est alors :

SELECT * 
FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=Nomduserveur; UserID=Login; Password=MotdePasse').NomDeLaBaseDeDonnee.dbo.NomDeLaTable/pre>

Par exemple supposons que nous souhaitions faire une jointure entre deux bases de deux serveurs :

1 - Serveur local SGBD1, base dbpersonne, table t_personne
2 - Serveur distant SGBD2, base de données dbpersonne2. on y accède en utilisant le login sa avec le mot de passe motdepasse.

Nous sommes connectés dans l'analyseur de requête sur la base locale  SGBD1.dbpersonne.t_personne. Nous souhaitons joindre avec la table SGBD2.dbpersonne2.t_personne_nom pour retrouver les noms des id de personnes correspondantes.

Dans ce contexte la jointure s'écrira comme suit :

SELECT t_personne.id, t_personne_nom.nom 
FROM t_personne, OPENDATASOURCE('SQLOLEDB', 'Data Source=SGBD2;User ID=sa;Password=motdepasse').dbpersonne2.dbo.t_personne_nom 
Where t_personne.id = t_personne_nom.id
Par Christophe HIRON
12 juin 2006