創建link server鏈接服務器碰到的問題及解決辦法


問題描述

今天在做數據庫遷移,然后新建link server(鏈接服務器)的時候,碰到以下問題。

我的sql 腳本是這樣的。

 

然后,執行的時候就收到以下錯誤信息。

Msg 468, Level 16, State 9, Line 7

Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.


原因分析

依據錯誤提示信息,很容易就可以發現,是因為當前DB的排序規則與鏈接服務器對應的DB的排序規則不一致導致的。

但是,確認當前DB的排序規則與鏈接服務器對的DB的排序規則是完全一樣的,都是SQL_Latin1_General_CP1_CI_AS。

解決辦法

當然,我這里的解決辦法只是一個替代的解決方案。

由於前面我是通過UI操作去創建的,那么我換一種方案,使用sql腳本(可以找一個正常的link server右鍵導出腳本然后修改)來創建,結果一切正常。

 

創建link server的腳本:

/****** Object:  LinkedServer [xxx]    Script Date: 09/10/2015 17:25:22 ******/
IF  EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N'xxx')EXEC master.dbo.sp_dropserver @server=N'xxx', @droplogins='droplogins'
GO
/****** Object:  LinkedServer [xxx]    Script Date: 09/10/2015 17:25:22 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'xxx', @srvproduct=N'xxx', @provider=N'SQLNCLI10', @datasrc=N'xxx\DEV'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'xxx',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='xxx.xxx.dev'
GO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM