在 sys.servers 中找不到服务器 '******'。请验证指定的服务器名称是否正确。

本文介绍了解决SQL Server跨服务器查询时出现的“找不到服务器”错误的方法。包括检查和修正服务器名称、使用正确的数据库名及schema路径,以及如何通过存储过程调整linked server设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置了一台测试数据库,但是在运行的时候出现了异常:在 sys.servers 中找不到服务器 'srv_lnk_kshrbase'。请验证指定的服务器名称是否正确。如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。

仔细研究定位到出错的sql语句:select * checkinfo from srv_lnk_kshrbase.KshrBase.dbo.ComBaseInfo 。。。。  ,我们要取其他服务器数据库中的数据时会向我上面标红的那样来写,依次是 服务器名.数据库名.schema 由于我们迁移了数据库到另外的服务器上,则第一个就变了找不到了,就出现了上面的异常。

解决方案:

1、我这边很简单,因为我迁移到同一台服务器上面,所以这种情况下服务器名是可以缺省的,我直接用数据库名.schema,就可以访问到了,问题也就迎刃而解了。

2、如果不在同一台服务器的话,我们就需要修改服务器,参考网友的解决方案(未验证):

select * from sys.servers (查看系统表,看原来的服务器名)

sp_dropserver '原来的服务器名' (删除原来的服务器名)
sp_addserver '现在的服务器名' (添加现在的服务器名)
sp_serveroption '现在的服务器名','data access', 'true' (设定 SQL Server 选项,使其答应加入linked server)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值