Joindre des tables sur différentes bases de données de serveurs
L'intégration des données de différentes bases de données de serveurs offre la possibilité d'effectuer des requêtes complètes. Pour ce faire, vous pouvez envisager les stratégies suivantes :
Utilisez sp_addlinkedserver
Utilisez sp_addlinkedserver
pour créer un lien de serveur afin d'établir une connexion entre deux bases de données. Veuillez vous référer à la documentation correspondante pour savoir comment l'utiliser. Une fois le lien établi, vous pouvez créer la requête comme d'habitude, en faisant précéder le nom de la base de données du nom du serveur lié, comme ceci :
<code class="language-sql">SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2 ON tab1.ID = tab2.ID</code>
UTILISER OPENQUERY
OPENQUERY
vous permet d'exécuter des instructions SQL sur un serveur distant et de récupérer uniquement les données requises. Cette approche améliore la vitesse et permet au serveur distant d'optimiser les requêtes. La mise en cache des données dans une table temporaire de la base de données locale peut faciliter les requêtes ultérieures, de la même manière que la connexion à une table standard.
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>
Veuillez vous référer à la documentation de OPENQUERY
pour plus d'exemples. Bien que l'exemple fourni ici soit plus simple, la première approche utilisant sp_addlinkedserver
peut être plus adaptée. Cependant, lorsque le filtrage des données est requis, OPENQUERY
peut améliorer les performances.
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!