Ich versuche, einen Verbindungsserver auf der SQL Server 2014-Instanz zu erstellen servername\instancename
mit dem folgenden Aufruf :
EXEC master.dbo.sp_addlinkedserver
@server = N'servername\instancename',
@srvproduct=N'SQL Server'
Ich erhalte den Fehler:
Msg 15028, Level 16, State 1, Procedure sp_addlinkedserver, Line 82
The server 'servername\instancename' already exists.
Dies funktioniert gut in SQL Server 2005 und nach MSDN ,
Der Verbindungsserver muss keine andere Instanz von SQL Server sein.
Ich bin mir also nicht sicher, was sich in den letzten Versionen geändert hat, die dies nicht zulassen. Die Verwendung der Benutzeroberfläche generiert eine ähnliche Meldung:
Sie können keinen lokalen SQL Server als Verbindungsserver erstellen.
Ich verstehe, dass es eine seltsame Sache ist, etwas anzufordern, aber es ist, einen älteren Code zu unterstützen, der 2005 funktionierte (und sich früher auf separaten Instanzen befand). Die Dokumentation besagt, dass es funktionieren sollte, aber es funktioniert nicht. Gibt es eine Möglichkeit, dies 2014 zum Laufen zu bringen, oder muss ich den zugrunde liegenden Code ändern?
quelle
Antworten:
Es stellte sich heraus, dass ich es mit verschiedenen Parametern zum Laufen bringen konnte.
quelle
Anstatt sich mit Verweisen auf Verbindungsserver in Ihrem Code zu befassen, sollten Sie eine einmalige Codeinvestition in Betracht ziehen, bei der an jedem Ort, an dem Sie derzeit einen Verbindungsserver haben, ein Synonym verwendet wird.
Also statt:
Sie haben ein Synonym:
Dann lautet Ihr Code einfach:
Wenn Sie Objekte auf andere Server verschoben haben, müssen Sie nur die Synonyme löschen und neu erstellen, ohne den Code berühren zu müssen:
quelle
Führen Sie diesen Befehl aus - Sie können den lokalen Server als Verbindungsserver verwenden, ohne dass eine Codeänderung erforderlich ist
quelle