一開始提示,在服務器中找不到在 sys.servers 中找不到服務器 'QPAccountsDBLink',先用select * from sys.servers ,發現只能查到一個服務器名稱,后來自己電腦里保存了一些鏈接腳本,只需改幾個地方
-- 變量定義
DECLARE @DBName VARCHAR(32)
DECLARE @DBUser VARCHAR(32)
DECLARE @DBPassword VARCHAR(32)
DECLARE @DBSourceAddr VARCHAR(32)
DECLARE @LinkServerName VARCHAR(32)
-- 設置變量
SET @LinkServerName='QPTreasureDBLink'
SET @DBSourceAddr='(local)'
SET @DBName='QPTreasureDB'
-- 刪除連接服務器
IF EXISTS(SELECT SrvName FROM MASTER.DBO.SYSSERVERS WHERE SrvName=@LinkServerName)
BEGIN
EXEC SP_DROPSERVER @LinkServerName,'DropLogins'
END
-- 建立鏈接服務器
EXEC SP_ADDLINKEDSERVER
@Server=@LinkServerName,
@SrvProduct=@LinkServerName,
@Provider='SQLOLEDB',
@DataSrc=@DBSourceAddr,
@Location='',
@ProvStr='',
@Catalog=null
-- 用戶映射
EXEC SP_ADDLINKEDSRVLOGIN @RmtSrvName=@LinkServerName,@Useself='true',@LocalLogin=NULL,@RmtUser=NULL,@RmtPassword=NULL
-- 設置鏈接服務器
EXEC SP_SERVEROPTION @Server=@LinkServerName,@OptName='RPC',@OptValue='true'
EXEC SP_SERVEROPTION @Server=@LinkServerName,@OptName='RPC OUT',@OptValue='true'
EXEC SP_SERVEROPTION @Server=@LinkServerName,@OptName='Data Access',@OptValue='true'
EXEC SP_SERVEROPTION @Server=@LinkServerName,@OptName='Collation CompaTible',@OptValue='true'
EXEC SP_SERVEROPTION @Server=@LinkServerName,@OptName='Use Remote Collation',@OptValue='true'
-- 鏈接服務器狀態
EXEC SP_HELPSERVER @LinkServerName
只需要在設置變量那里改改,其他不用動,提示缺少找不到什么服務器就弄什么服務器
-- 設置變量
SET @LinkServerName='QPTreasureDBLink'
SET @DBSourceAddr='(local)'
SET @DBName='QPTreasureDB'
只需把@LinkServerName設置成數據庫link名字
@DBName設置成數據庫名字
下面是網上通用解決方法
[Microsoft][ODBC SQL Server Driver][SQL Server]在 sys.servers 中找不到服務器 '***'。請驗證指定的服務器名稱是否正確。如果需要,請執行存儲過程 sp_addlinkedserver 以將服務器添加到 sys.servers。
解決方法:
打開SQL Server Management Studio,新建查詢:
select * from sys.servers
GO
//這里可得到原來的計算機名稱。然后將其記錄下來(復制即可)
新建查詢:
sp_dropserver [你的SQL服務器名稱]
GO
//這里是將原來的名稱刪除。
新建查詢:
sp_addserver [新的SQL服務器名稱]
GO
//這里是新建服務器名稱
新建查詢:
sp_serveroption '新的SQL服務器名稱','data access', 'true'
GO