Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin

时间:2022-03-02 10:20:01

表关联查询的时候提示; 排序错误
Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. 

网上找了一种方案
ALTER   DATABASE   '数据库1'   COLLATE   Chinese_PRC_CI_AS  
执行后

打开数据库表 A
字段的排序属性 依旧是"SQL_Latin1_General_CP1_CI_AS  (想问这里。会有影响么?)

7 个解决方案

#1


你可以直接在写语句的时候修改本次查询的排序规则。

#2


應該是更改表的排序,更改數據庫的排序只是對新建的表有效.

#3


潜在问题:
1、由于某些应用导致你的更改报错。
2、会影响数据存储。

所以权宜之计可以在语句中修改,或者把关联的两个库的排序规则修改

#4


如果你要改的光改库是不行的,表列也要改。可行的办法是创建新数据库然后倒入数据。

或者在语句中用Collate

#5


最好不要随便修改排序规则,否则会导致乱码。

你可以在比较的时候,同时指定排序规则,这样:

select
from tb
where 字段 collate Chinese_PRC_CI_AS = 'abc' collate Chinese_PRC_CI_AS

#6


除了修改数据库级的排序规则,另需修改表字段的排序规则,

use [数据库1]

alter table [表A] alter column [字段名] [数据类型]([长度]) collate Chinese_PRC_CI_AS

#7


3Q,谢谢楼上各位指点;
有空再好好研究下 Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin

#1


你可以直接在写语句的时候修改本次查询的排序规则。

#2


應該是更改表的排序,更改數據庫的排序只是對新建的表有效.

#3


潜在问题:
1、由于某些应用导致你的更改报错。
2、会影响数据存储。

所以权宜之计可以在语句中修改,或者把关联的两个库的排序规则修改

#4


如果你要改的光改库是不行的,表列也要改。可行的办法是创建新数据库然后倒入数据。

或者在语句中用Collate

#5


最好不要随便修改排序规则,否则会导致乱码。

你可以在比较的时候,同时指定排序规则,这样:

select
from tb
where 字段 collate Chinese_PRC_CI_AS = 'abc' collate Chinese_PRC_CI_AS

#6


除了修改数据库级的排序规则,另需修改表字段的排序规则,

use [数据库1]

alter table [表A] alter column [字段名] [数据类型]([长度]) collate Chinese_PRC_CI_AS

#7


3Q,谢谢楼上各位指点;
有空再好好研究下 Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin