Maison >base de données >tutoriel mysql >Comment puis-je joindre des tables sur différents serveurs de base de données ?
Interroger les données sur les tables de connexion du serveur de base de données
Dans de nombreux cas, vous devrez peut-être joindre des tables dans différentes bases de données situées sur différents serveurs. Cela peut représenter un défi, mais il existe des moyens de faciliter cette intégration des données.
Méthode 1 : Créer un lien de serveur
sp_addlinkedserver
Les procédures stockées permettent d'établir une connexion entre un serveur local et un serveur de base de données distant, appelée lien serveur. Une fois le lien établi, vous pouvez référencer la table distante dans une requête en faisant précéder le nom de la base de données du serveur distant de son nom de base de données.
Par exemple, si vous avez une table MyDatabaseOnDB1
dans MyTable
et une table MyDatabaseOnDB2
dans MyOtherTable
, vous pouvez les joindre en utilisant la requête suivante :
<code class="language-sql">SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2 ON tab1.ID = tab2.ID</code>
Méthode 2 : Utiliser OPENQUERY
Vous pouvez également utiliser OPENQUERY
pour exécuter une requête SQL sur un serveur distant et récupérer les résultats. Cette méthode permet au serveur distant d'optimiser les requêtes et peut améliorer les performances. Pour ce faire, vous créez une table temporaire sur le serveur local et utilisez OPENQUERY
pour la remplir avec les résultats de la requête exécutée sur le serveur distant.
Par exemple :
<code class="language-sql">-- 从其他数据库服务器获取数据 SELECT * INTO #myTempTable FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]') -- 现在我可以连接我的临时表来查看数据 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>L'utilisation de
OPENQUERY
peut améliorer les performances et gagner du temps, en particulier lors de l'utilisation de requêtes pour filtrer de grands ensembles de données.
Que vous utilisiez des liens de serveur ou OPENQUERY
dépend des exigences spécifiques de votre application et des considérations de performances. Les deux approches fournissent des solutions viables pour interroger des données sur des serveurs de bases de données et facilitent une intégration efficace des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!