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