Problème :
Comment récupérer efficacement les données de plusieurs bases de données SQL Server situées sur différents serveurs à l'aide d'une seule requête ?
Solution :
Exploitez la fonctionnalité de serveur lié de SQL Server. Cela vous permet de créer une connexion à des serveurs distants et d'accéder à leurs bases de données comme si elles étaient locales. Voici comment :
Approche 1 : Utilisation de SQL Server Management Studio (SSMS)
Approche 2 : Utilisation de la sp_addlinkedserver
Procédure stockée
Exécutez la procédure stockée suivante, en remplaçant les espaces réservés par vos valeurs réelles :
<code class="language-sql">EXEC sp_addlinkedserver @server_name = N'YourLinkedServerName', @srvproduct = N'SQL Server', @provider_name = N'SQLNCLI', @data_source = N'YourServerAddress'</code>
Après avoir configuré avec succès le serveur lié, vous pouvez interroger des données sur plusieurs serveurs :
<code class="language-sql">SELECT * FROM YourLocalTable INNER JOIN [YourLinkedServerName].[YourLinkedDatabase].[YourSchema].[YourRemoteTable] ON YourLocalTable.ID = YourRemoteTable.ID;</code>
Considération importante : N'oubliez pas de remplacer YourLinkedServerName
, YourLinkedDatabase
, YourSchema
, YourLocalTable
et YourRemoteTable
par le nom de votre serveur spécifique, le nom de la base de données, le nom du schéma et les noms des tables. . Le schéma peut différer de « dbo », alors vérifiez le nom de schéma correct pour votre table distante. L'utilisation d'une clause JOIN
appropriée (comme INNER JOIN
illustré ci-dessus) est cruciale pour une récupération 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!