J'essaie de créer un serveur lié sur une instance SQL Server 2014 servername\instancename
à l'aide de l'appel suivant:
EXEC master.dbo.sp_addlinkedserver
@server = N'servername\instancename',
@srvproduct=N'SQL Server'
Je reçois l'erreur:
Msg 15028, Level 16, State 1, Procedure sp_addlinkedserver, Line 82
The server 'servername\instancename' already exists.
Cela fonctionne bien dans SQL Server 2005, et selon MSDN ,
Le serveur lié ne doit pas être une autre instance de SQL Server,
Je ne suis donc pas sûr de ce qui a changé dans les versions récentes qui interdisent cela. L'utilisation de l'interface utilisateur génère un message similaire:
Vous ne pouvez pas créer un serveur SQL local en tant que serveur lié.
Je comprends que c'est une chose étrange à demander, mais c'est pour prendre en charge un code hérité qui a fonctionné en 2005 (et était sur des instances distinctes). La documentation indique que cela devrait fonctionner, mais ce n'est pas le cas. Existe-t-il un moyen de faire fonctionner cela en 2014, ou vais-je devoir modifier le code sous-jacent?
Réponses:
Il s'avère que j'ai pu le faire fonctionner avec différents paramètres.
la source
Au lieu de traiter des références de serveur lié à l'intérieur de votre code, vous voudrez peut-être envisager un investissement de code unique impliquant l'utilisation d'un synonyme dans n'importe quel emplacement où vous disposez actuellement d'un serveur lié.
Donc au lieu de:
Vous avez un synonyme:
Ensuite, votre code est simplement:
Ensuite, si vous avez des objets déplacés vers différents serveurs, il vous suffit de supprimer et de recréer les synonymes et de ne pas avoir à toucher le code:
la source
Exécutez cette commande - vous pourrez utiliser le serveur local comme serveur lié sans changement de code nécessaire
la source