none
SMS vs SQL RRS feed

  • 問題

  •  

    因為我的SMS一直有問題.

    這二天去看了一下SMS 的 log

     

    發現他在跟SQL下命令時, 會發生錯誤.

    能否幫我解析一下問題呢!?

     

     

    SQL 指令如下

    *** select DISTINCT RBADS.ADSiteName as Boundary from #TempSiteBoundaries as S inner join RoamingBoundaryADSite as RBADS on RBADS.SiteCode = S.SiteCode where RBADS.ServerName = "<none>" UNION select DISTINCT RBIPS.IPSubnet as Boundary from #TempSiteBoundaries as S inner join RoamingBoundaryIPSubnet as RBIPS on RBIPS.SiteCode = S.SiteCode where RBIPS.ServerName = "<none>"

     

     

    錯誤如下.

     

    *** [42000][468][Microsoft][ODBC SQL Server Driver][SQL Server]Cannot resolve the collation conflict between "Chinese_Taiwan_Stroke_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.

    2007年12月24日 上午 08:15

解答

  • 您好,這個問題看起來應該是定序不一致所導致

    一般來說,定序是在安裝sql server就決定了(要用自訂安裝才看的到)

    不過,應該sql server 2000開始可以對某個table中的欄位去設定定序

    您可以檢查一下您這句語法,在TempSiteBoundaries 和 RoamingBoundaryADSite 中有select 到的欄位

    以設計資料表的方式去看,在下方預設值等資訊中,應該會有一欄是定序的欄位,可以試著在

    該欄位調整看看

     

    如果是暫存table,可在建立table時就設定各欄位的定序,例如:

    CREATE TABLE dbo.Table_1
     (
     test1 nchar(10) COLLATE Chinese_Taiwan_Bopomofo_BIN NULL
     ) 

     

     

    另外,也可以試著調整整個db的定序,語法如下

    ALTER DATABASE database_name  
      COLLATE collation_name

    (不過這個我沒試過,我不確定在同一台db server下,各db是否可有不同的定序,因為對server而言,也有server預設的定序)

    可以試看看囉

     

    2007年12月29日 上午 02:50