it-swarm.com.de

Server 'Servername' konnte in sys.servers nicht gefunden werden. SQL Server 2014

Ich habe kürzlich unseren SQL Server von 2005 auf 2014 (Verbindungsserver) aktualisiert, und ich stelle fest, dass eine der gespeicherten Prozeduren, die den exec-Befehl zum Ausführen einer gespeicherten Prozedur auf dem aktualisierten Verbindungsserver aufruft, mit dem Fehler fehlschlägt 

Server 'Servername' konnte in sys.servers nicht gefunden werden. Stellen Sie sicher, dass der richtige Servername angegeben wurde. Führen Sie ggf. die gespeicherte Prozedur sp_addlinkedserver aus, um den Server zu sys.servers hinzuzufügen.

Das Problem ist, dass der Verbindungsserver existiert und ich habe Tests durchgeführt, um sicherzustellen, dass ich die Tabellen vom Verbindungsserver abfragen kann. Hier sind die Überprüfungen, die ich durchgeführt habe, um zu sehen, ob der Verbindungsserver korrekt konfiguriert ist.

 - select name from sys.servers -- > Lists the linked server 
 - select top 10 * from linkedserver.database.dbo.table -->  Gets top 10 records 
 - exec linkedserver.database.dbo.storedproc --> Executes the stored procedure (I created a test stored procedure on the linked server and I can execute it)

Der Fehler, der mit dem Fehler ausfällt, befindet sich jedoch unten

exec linkedserver.database.dbo.failing_storedprocedure  @id,'load ','v2',@file_name, @list_id = @listid output;

Ich habe den Verbindungsserver neu erstellt, und RPC ist aktiviert. Ich habe die Ausführungsberechtigung für die gespeicherte Prozedur erteilt. Ich kann Datensätze auswählen und andere gespeicherte Prozeduren auf dem Verbindungsserver ausführen, aber der obige Exec schlägt fehl (es hat vor dem Upgrade funktioniert). Gibt es einen Syntaxunterschied zwischen SQL Server 2005 und SQL Server 2014, der dazu führt, dass dies fehlschlägt?

7
VK_217

Ich habe das Problem herausgefunden. Der Verbindungsserver wurde korrekt erstellt. Nachdem der Server jedoch aktualisiert und umgestellt wurde, hatte der Servername in sys.servers noch den alten Servernamen.

Ich musste den alten Servernamen löschen und den neuen Servernamen auf dem neuen Server zu sys.servers hinzufügen

sp_dropserver 'Server_A'
GO
sp_addserver  'Server',local
GO
6
VK_217

Überprüfen Sie zunächst, ob Ihr Verbindungsserver durch diese Abfrage in der Liste enthalten ist

select name from sys.servers

Wenn dies nicht der Fall ist, versuchen Sie, den Verbindungsserver hinzuzufügen 

EXEC sp_addlinkedserver @server = 'SERVER_NAME' --or may be server ip address

Nach diesem Login an diesem Verbindungsserver von

EXEC sp_addlinkedsrvlogin 'SERVER_NAME'
                         ,'false'
                         ,NULL
                         ,'USER_NAME'
                         ,'PASSWORD'

Dann können Sie tun, was Sie möchten, wie Ihren lokalen Server

exec [SERVER_NAME].[DATABASE_NAME].dbo.SP_NAME @sample_parameter

Schließlich können Sie diesen Server aus der Liste der verknüpften Server löschen 

sp_dropserver 'SERVER_NAME', 'droplogins'

Wenn es Ihnen helfen wird, dann stimmen Sie bitte zu.

0
Humayoun_Kabir