今天看到SQL server的job有個error
Cannot resolve the collation conflict between "Chinese_Taiwan_Stroke_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. [SQLSTATE 42000] (Error 468). The step failed.
collation conflict(定序衝突)的問題
有個SP去拿另一個DB的table資料
但是那個table有個欄位的定序是SQL_Latin1_General_CP1_CI_AS
所以出現error
查了一下,網路上有個不錯的作法 連結
如果有定序衝突的問題, 請做以下處理
1. 執行 sp_help tablename , 會得到5個資料集合, 請看第二個組資料,
裡面是您該Table所有的欄位, 請找出您出問題的Where 子句用來比較
的欄位的 Collation 值, 記下來.
(您的 Where 子句比較了兩個欄位, 所以請查出這兩個定序).
2. 接下來以舉例來說明:
Update ..... Where FA = FB
如果 FA 欄位的定序是 Chinese_Taiwan_Stroke_90_CI_AS,
而 FB 欄位的定序是 Chinese_Taiwan_Stroke_CI_AS.
那麼 Where 子句請改成:
Update ..... Where (FA COLLATE Chinese_Taiwan_Stroke_CI_AS) = FB
所以,要嘛改欄位的collation ,要嘛用update語法的時候,用這個方法改掉
有進度我會update一下
Cannot resolve the collation conflict between "Chinese_Taiwan_Stroke_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. [SQLSTATE 42000] (Error 468). The step failed.
collation conflict(定序衝突)的問題
有個SP去拿另一個DB的table資料
但是那個table有個欄位的定序是SQL_Latin1_General_CP1_CI_AS
所以出現error
查了一下,網路上有個不錯的作法 連結
如果有定序衝突的問題, 請做以下處理
1. 執行 sp_help tablename , 會得到5個資料集合, 請看第二個組資料,
裡面是您該Table所有的欄位, 請找出您出問題的Where 子句用來比較
的欄位的 Collation 值, 記下來.
(您的 Where 子句比較了兩個欄位, 所以請查出這兩個定序).
2. 接下來以舉例來說明:
Update ..... Where FA = FB
如果 FA 欄位的定序是 Chinese_Taiwan_Stroke_90_CI_AS,
而 FB 欄位的定序是 Chinese_Taiwan_Stroke_CI_AS.
那麼 Where 子句請改成:
Update ..... Where (FA COLLATE Chinese_Taiwan_Stroke_CI_AS) = FB
所以,要嘛改欄位的collation ,要嘛用update語法的時候,用這個方法改掉
有進度我會update一下
留言
張貼留言