13

我有很多查询数据库的服务。它们都工作正常,但调用存储过程的一项服务给了我以下错误:

在 sys.servers 中找不到服务器“dbo”。验证是否指定了正确的服务器名称。如有必要,执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。

我不知道为什么所有其他存储过程都可以正常工作而这个不是...

顺便说一句,我使用 SubSonic 作为数据访问层。

4

5 回答 5

15

select name from sys.servers从您在配置文件中提到的作为默认服务器的服务器运行。

这里的名称列值应与您在报告查询中使用的服务器名称相匹配。

例如serverXXX.databasename.schema.tablename

serverXXX 应该在结果中,select name from sys.servers否则它会给出错误。

于 2012-04-26T10:19:00.683 回答
13

听起来好像多了一个“。” (或两个)在映射 - 即它试图找到 server.database.schema.object。检查您的映射是否有杂散点/可疑条目。

于 2009-03-20T10:52:23.187 回答
4

还要确保服务器名称与您认为的一致。如果重命名运行 SQL Server 的主机,则还需要重命名 SQL Server。

http://www.techrepublic.com/blog/datacenter/changeing-the-name-of-your-sql-server/192

于 2011-05-31T18:58:54.530 回答
1

我遇到了同样的例外的另一个问题,所以如果有人偶然发现它,我会在这里发布:

如果您在同义词中指定服务器名称,请小心。我的登台机器和生产设备上的服务器名称不同,它导致了相同的“找不到服务器”错误。

(猜想你不应该过多使用同义词,但它在某些迁移场景中很有用)

于 2010-11-10T14:47:28.037 回答
0

就我而言,我在关注以下问题时遇到了同样的问题,

  SqlCommand command = new SqlCommand("uspx_GetTemplate", connection);

但是在将方括号添加到存储过程名称后,它就得到了解决。

SqlCommand command = new SqlCommand("[uspx_GetTemplate]", connection);
于 2020-09-04T13:12:02.920 回答