在 sys.servers 中找不到服务器 ‘xxxxxx‘。请验证指定的服务器名称是否正确。
生活随笔
收集整理的這篇文章主要介紹了
在 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.如果不在同一臺服務器的話,我們就需要修改服務器,參考網友的解決方案(未驗證):
總結
以上是生活随笔為你收集整理的在 sys.servers 中找不到服务器 ‘xxxxxx‘。请验证指定的服务器名称是否正确。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机硬件耗电,耗电大户不一定就“费电”
- 下一篇: Spring源码深入阅读Annotati