Не удалось найти сервер "имя сервера" в sys.сервера. SQL Server 2014
недавно я обновил наш SQL Server с 2005 по 2014 год (связанный сервер), и я замечаю, что одна из хранимых процедур, которая вызывает команду exec для выполнения хранимой процедуры на обновленном связанном сервере, терпит неудачу с ошибкой
не удалось найти сервер "имя сервера" в sys.сервера.Убедитесь, что указано правильное имя сервера. При необходимости выполните хранимую процедуру sp_addlinkedserver для добавления сервера системный.сервера.
проблема в том, что связанный сервер существует, и я провел тесты, чтобы убедиться, что я могу запросить таблицы со связанного сервера. Вот проверки, которые я сделал, чтобы увидеть, правильно ли настроен связанный сервер.
- 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)
однако тот, который терпит неудачу с ошибкой, ниже
exec linkedserver.database.dbo.failing_storedprocedure @id,'load ','v2',@file_name, @list_id = @listid output;
я воссоздал связанный сервер, и RPC включен.Я предоставил разрешение execute на хранимую процедуру. Я могу выбрать записи и выполнить другие хранимые процедуры на связанном сервере, но вышеприведенный exec не работает (он работал до обновления).Существует ли синтаксическая разница между SQL Server 2005 и SQL Server 2014, которая вызывает сбой?
1 ответов
я понял проблему. Связанный сервер был создан правильно. Однако после обновления сервера и переключения имени сервера в sys.servers
еще на старое имя сервера.
мне пришлось удалить старое имя сервера и добавить новое имя сервера в sys.servers
на новый сервер
sp_dropserver 'Server_A'
GO
sp_addserver 'Server',local
GO