sql 2008找不到服务器,sql server 2005 数据库迁移问题总结——错误 ‘80004005’ 在 sys.servers 中找不到服务器 ‘XXX’...
SQL2005做轉移的過程中遇到此問題,到時為了方便,轉移方法直接采用的,停止A服務器,復制A服務器中的數據庫,將此數據庫加載到B服務器,重啟B服務器,有可能這種遷移方法有問題,最后的結果就是,可以正常遠程連接數據庫,但是當執行rs.update的時候會報錯,一般會出現以下現象:
現象一:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 ‘80004005’
[Microsoft][ODBC SQL Server Driver][SQL Server]在 sys.servers 中找不到服務器 ‘XXX’。請驗證指定的服務器名稱是否正確。如果需要,請執行存儲過程 sp_addlinkedserver 以將服務器添加到 sys.servers。
/fcj/inc/sql.asp,行 186
現象二:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 ‘80004005’
[Microsoft][ODBC SQL Server Driver][SQL Server]未將服務器 ‘XXX’ 配置為用于 DATA ACCESS。
/fcj/inc/sql.asp,行 186
現象三:
[Microsoft][ODBC SQL Server Driver][SQL Server]此游標不包括正在修改的表,或該表不能通過此游標更新。
后來在網上查找原因,說是這個問題一般存在于sql2005更換服務器后。直接復制的數據庫物理文件最多。內部的主機名變更導致。
解決辦法:
如果是直接更換的服務器,那么主機名更換了,以前存在數據庫的主機名也需要刪除。進入SQL2005查詢器
執行:
select @@Servername
可以看到現在默認的主機名,如果與現在的主機名不一樣,說明主機名更換了
sp_helpserver
可以看到以前的主機名信息。同時可以看到所有的 SQL Server 實例
刪除命令:
sp_dropserver @server=’以前的主機名’
添加新主機,假設我現在的主機名是A
sp_addserver @server=’A’,@local=local
這時候會報錯:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 ‘80004005’
[Microsoft][ODBC SQL Server Driver][SQL Server]未將服務器 ‘A’ 配置為用于 DATA ACCESS。
/fcj/inc/sql.asp,行 186
設置模式:
USE master
EXEC sp_serveroption ‘A’, ‘data access’, ‘on’
可能會遇到:
[Microsoft][ODBC SQL Server Driver][SQL Server]此游標不包括正在修改的表,或該表不能通過此游標更新。
一般重新啟動sql2005服務(或重啟服務器),問題解決。
但是我的重啟后依舊沒有解決問題,于是我做了以下探索:
select @@Servername
返回值是null,這個時候當我執行
EXEC sp_dropserver @@servername
就報錯說主機名null不存在
于是我直接sp_helpserver 看到了所有的SQL實例,然后刪除了所有的實例(A、B、C),依次執行以下命令
EXEC sp_dropserver “A”
EXEC sp_dropserver “B”
EXEC sp_dropserver “C”
接著添加新的主機名:
EXEC sp_addserver “new\SQL2005”,local
設置模式:
USE MASTER;
GO
EXEC sp_serveroption ‘new\SQL2005′,’data access’,’on’;
GO
重啟SQL服務器:打開SQL2005外圍應用配置器—>服務和連接的外圍應用配置器,選擇MSSQLSERVER,點擊停止—>啟動。
問題得以解決!
總結
以上是生活随笔為你收集整理的sql 2008找不到服务器,sql server 2005 数据库迁移问题总结——错误 ‘80004005’ 在 sys.servers 中找不到服务器 ‘XXX’...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket编程介绍
- 下一篇: delphi7存取配置文件与sqlser