常常要通過預存程序修改連結資料庫中的資料,需要在來源資料庫伺服器和目標資料庫伺服器上配置分散式交易,配置過程比較繁瑣,分散式交易出現問題既有作業系統的原因也有SQL SERVER的原因。讀了《sql server分散式交易解決方案》一文以後,我感覺基本上已經形成了一套標準化的配置步驟,但第6節中沒有提到當SQL Server的名稱和電腦名稱不一致時應該採取的措施。
對於全新安裝的機器,按照中文文檔的要點配置,應該不會有什麼問題。如果按以上配置還有問題,參考英文文檔,很可能是安裝SQL SERVER以後修改過電腦名稱(網路名稱),導致SQL Server的名稱和電腦名稱不一致。
--查詢SQL SERVER名稱
SELECT @@SERVERNAME
最好先在伺服器上相互ping以下對方電腦名稱,看看返回的IP地址對不對,防止網路上電腦重名。如果電腦名稱解析IP地址無誤,那麼就按電腦名稱來修改SQL SERVER名稱。
--SQL SERVER 2005 修改伺服器名
sp_dropserver <old_name\instancename>
GO
sp_addserver <new_name\instancename>, local
GO
--SQL SERVER 2000 修改伺服器名
use master
go
sp_configure 'allow up',1
RECONFIGURE WITH OVERRIDE
GO
update sysservers set srvname=<new_name> where srvid=0
update sysservers set datasource=<IP> where srvid=1
go
sp_configure 'allow up',0
RECONFIGURE WITH OVERRIDE
GO
中文參考文檔:sql server分散式交易解決方案
英文參考文檔:How to troubleshoot error 7391 that occurs when you use a linked server in SQL Server