Partager via


Remarques concernant les serveurs liés dans un serveur SQL ordonné en clusters

Lorsque des serveurs liés sont configurés dans un serveur cluster SQL Server sur des fournisseurs OLE DB non fournis avec SQL Server 2005, vérifiez que les fournisseurs OLE DB sont installés dans tous les nœuds du cluster. En outre, toutes les propriétés qui définissent le serveur lié doivent être transparentes en ce qui concerne leur emplacement. Elles ne doivent pas comporter d'informations relatives indiquant que SQL Server fonctionne toujours sur un nœud spécifique du cluster.

L'exemple suivant définit un serveur lié sur un serveur exécutant SQL Server et fait référence à l'une des tables distantes en utilisant un nom à quatre éléments dans une instruction SELECT.

sp_addlinkedserver @server = N'LinkServer',
    @srvproduct = N' ',
    @provider = N'SQLNCLI', 
    @datasrc = N'ServerNetName', 
    @catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.HumanResources.Employee
GO

Serveurs liés en boucle

Les serveurs liés peuvent être définis de façon à repointer (en bouclage) vers le serveur sur lequel ils sont définis. Les serveurs en boucle sont particulièrement utiles pour tester une application utilisant des requêtes distribuées sur un réseau comportant un seul serveur.

Par exemple, l'exécution de la procédure stockée sp_addlinkedserver sur un serveur nommé MyServer définit un serveur lié en boucle :

sp_addlinkedserver @server = N'MyLink',
    @srvproduct = N' ',
    @provider = N'SQLNCLI', 
    @datasrc = N'MyServer', 
    @catalog = N'AdventureWorks'
GO

Les instructions Transact-SQL qui utilisent MyLink comme nom de serveur s'exécutent en boucle par l'intermédiaire du fournisseur SQLNCLI, puis retournent vers le serveur local.

Les serveurs liés en boucle ne peuvent pas être utilisés dans une transaction distribuée. Si vous essayez d'exécuter une requête distribuée sur un serveur lié en boucle dans une transaction distribuée, vous obtiendrez une erreur, telle que l'erreur 3910 : « [Microsoft][Pilote ODBC SQL Server][Serveur SQL Server]Le contexte de transaction est utilisé par une autre session. »

Voir aussi

Concepts

Fournisseur OLE DB de SQL Native Client
Requêtes distribuées

Autres ressources

sp_addlinkedserver (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005