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

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

问题描述

今天在进行sqlserver数据库数据迁移时,在目标库导入function报了如下错误:

2021-11-10 10:39:22.789 [INFO]-- 2021-11-10 10:39:20.841 [ERROR]-- 在 sys.servers 中找不到服务器 'T68E59BW'。请验证指定的服务器名称是否正确。如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1632)
com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:872)
com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:767)
com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7418)
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3272)
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:247)
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:222)
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(SQLServerStatement.java:710)
com.hh.frame.common.util.db.SqlExeUtil.executeUpdate(SqlExeUtil.java:52)
com.hh.frame.dbmg.imp.ExecSQL.run(ExecSQL.java:36)

问题原因

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

解决方案

1.将[T68E59BW]数据库迁移到同一台服务器上面,所以这种情况下服务器名是可以缺省的,我直接用数据库名.schema,就可以访问到了,问题也就迎刃而解了;
2.如果不在同一台服务器的话,我们就需要修改服务器,参考网友的解决方案(未验证):

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

sp_dropserver '原来的服务器名' (删除原来的服务器名)
sp_addserver '现在的服务器名' (添加现在的服务器名)
sp_serveroption '现在的服务器名','data access', 'true' (设定 SQL Server 选项,使其答应加入linked server)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值