SQL:无法解决 equal to 操作的排序规则冲突。

更改存储过程的时候,在SQL中出现了 “无法解决 equal to 操作的排序规则冲突”错误,网上搜之,发现是表之间元素创建时排序规则不同(一个是collate Chinese_PRC_CI_AI_WS,一个为COLLATE SQL_Latin1_General_CP1_CI_AS)

COLLATE 一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。

一般解决办法:

直接在报错处的关联字段后加上collate Chinese_PRC_CI_AI_WS就可以。如果加上后,还是报错,就试试以下方案:

1.用 sp_helpdb 库名

2.在status列找到Collation=排序规则

3.select from where collate 排序规则 not in (select collate 排序规则 from DB2.表)

这两个排序规要统一成一个

SQL:无法解决 equal to 操作的排序规则冲突。

时间: 2024-12-23 03:38:14

SQL:无法解决 equal to 操作的排序规则冲突。的相关文章

[转载]无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CI_AS_KS_WS" 之间的排序规则冲突

原文链接:http://blog.csdn.net/creathly003/article/details/7331461 一.错误分析: 这个错误是因为排序规则不一致造成的,我们做个测试,比如:create table #t1(name varchar(20) collate Albanian_CI_AI_WS,value int) create table #t2(name varchar(20) collate Chinese_PRC_CI_AI_WS,value int ) 表建好后,执

无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "SQL_Latin1_General_CP1_CI_AS" 之间的排序规则冲突。

什么是排序规则(collation) 关于SQL Server的排序规则,估计大家都不陌生,在创建数据库时我们经常要选择一种排序规则(conllation),一般我们会留意到每一种语言的排序规则都有许多种,比如标准大陆简体中文Chinese_PRC的排序规则就有数十种之多 这些排序规则有什么作用呢?让我们先来看看MS官方的解释: 排序规则指定了表示每个字符的位模式.它还指定了用于排序和比较字符的规则.排序规则具有下面的特征: 语言 区分大小写 区分重音 区分假名 比如在SQL Server 20

sql server排序规则冲突

问题1: 解决: 数据库的排序规则不同,a表为临时表,用的是tempdb的排序规则,tempdb一般用的实例默认的排序规则. 而 b表用的是db_tank的排序规则,所以在两个表做字段匹配.计算等操作时会报错排序规则冲突. set @mdf=(SELECT dsize/1024 FROM #tf_driver a,db_tank..sysfiles b WHERE b.name='Db_Tank_Data' and a.driver COLLATE chinese_prc_ci_as =LEFT

"Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI" 之间的排序规则冲突问题

这个错误真是太恶心了.不过有解决办法,你问我哪来的?当然百度的咯! 示例: select a.workTypeDes from A a,B b  where a.workTypeCode=b.workTypeCode collate Chinese_PRC_CI_AS 在后面加上这句就OK了.collate Chinese_PRC_CI_AS,规定下排序规则!

由于 UNION ALL Chinese_PRC_CI_AS”之间的排序规则冲突,值的排序规则未经解析

由于不同的表之间的排序规则不一样,在归并集合的 时候会出现排序问题. 只要在查询的列后面 声明结果列的排序规则保持一致即可:  SELECT b0.[CardCode] collate SQL_Latin1_General_CP850_CI_AS AS Id         ,b0.[DocEntry]  AS OrderId         ,b0.[NumAtCard] collate SQL_Latin1_General_CP850_CI_AS AS customerNo ,b0.[Doc

无法解决 equal to 运算中 "Chinese_PRC_90_CI_AS" 和 "Chinese_PRC_BIN" 之间的排序规则冲突

这是因为数据库 oa 和 hh 的编码格式不一样导致的 select  groupname as oper_id,name as oper_name from security_users where name collate Chinese_PRC_CI_AS not in (select oper_name from PDA_UsersAndPWD )

sql server不同排序规则的数据库间字段的比较

不同的排序规则的字段是不能直接比较的.会提示:无法解决 equal to 操作的排序规则冲突.可以把字段强制转换一个排序规则,这样就能比较了.示例: -------------------------------------- SELECT *FROM tab1 a LEFT OUTER JOIN      tab2 u ON a.AdmissionNo = u.UserName COLLATE Chinese_PRC_CI_AS --------------------------------

数据库排序规则的冲突(理解collate Chinese_PRC_CI_AS)

之前碰到了数据库排序规则冲突问题,即百度或者 Google 的老话题: " 无法解决 equal to 操作中' sql_latin1_general_cp1_ci_as '和' chinese_prc_ci_as '之间的排序规则冲突 " .一般的方法,是在创建临时表或表连接的时候加上规则校勘语句 COLLATE "规则名"解决,如: create table #example ( EXP_Name varchar (50) collate CHINESE_PRC

利用排序规则特点计算汉字笔划和取得拼音首字母

SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误:     "无法解决 equal to 操作的排序规则冲突." 一.错误分析: 这个错误是因为排序规则不一致造成的,我们做个测试,比如:create table #t1(name varchar(20) collate Albanian_CI_AI_WS, value int) cr