无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_C
时间:2011-03-11 来源:gavin
CCE3.03的服务器采用英文的2003R2 数据库排序规则为拉丁文忽略大小写. 我的存储过程中遇到了"无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。"百度一下 ^_^ 由于采用了 临时表 导致使用了数据库默认的字符排序规则 导致:
表sohead字段so_num的Collate跟数据库默认的Collate不一样造成的,创建临时表,对字符类型的字段使用数据库默认的Collate,如果这个跟表的字段Collate不同时,SQL Server无法对这两个字段进行比较 附录: 在执行SQL语句时,可能会遇到:“无法解决 equal to 操作中的 **** 和 *******排序规则冲突”
一.错误分析:
create table #t2( 表建好后,执行连接查询: select * from #t1 A inner join #t2 B on A.name=B.name 这样,错误就出现了:
服务器: 消息 446,级别 16,状态 9,行 1
select *
什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中, select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
1.将数据库中一个表的字段改成与另一个表中要比较的字段相同的排序规则。 2.在SQL语句的Where子句后面加上类似这样的SQL片段:collate Chinese_PRC_CI_AI_WS 如: Select A.* From A,B Where A.a = B.b collate Chinese_PRC_CI_AI_WS |