Не удалось найти сервер dbo в sys.servers

У меня есть много служб, которые запрашивают базу данных. Все они работают нормально, но одна служба, вызывающая хранимую процедуру, дает мне следующую ошибку:

Не удалось найти сервер dbo в sys.servers. Убедитесь, что правильный имя сервера. Если необходимо, выполнить сохраненные процедура sp_addlinkedserver для добавления сервер для sys.servers.

Я не знаю, почему все остальные хранимые процедуры работают нормально, а это не...

Кстати, я использую SubSonic как уровень доступа к данным.

Ответы

Ответ 1

Похоже, что есть дополнительный ".". (или два) в сопоставлении - то есть он пытается найти server.database.schema.object. Проверьте свое сопоставление для блуждающих точек/сомнительных записей.

Ответ 2

Запустите select name from sys.servers с сервера, который вы назвали сервером по умолчанию в файле конфигурации.

Здесь в столбцах имени столбца должны совпадать имена серверов, используемые в запросе отчета.

e.g serverXXX.databasename.schema.tablename

serverXXX должен присутствовать в результате select name from sys.servers, иначе он дает ошибку, как полученную.

Ответ 4

У меня была другая проблема с тем же исключением, поэтому я отправлю сюда, если кто-то наткнется на него:

Будьте осторожны, если вы укажете имя сервера в синонимах. У меня было другое имя сервера на моем промежуточном компьютере и в производстве, и это вызвало ту же ошибку "не удается найти сервер".

(Угадайте, вы не должны сильно использовать синонимы, но это полезно в некоторых сценариях миграции)