zoukankan      html  css  js  c++  java
  • (SQLSERVER2008)排序规则

    最近做项目时,无意间碰到一个排序规则的问题,导致EAS二次开发单据都不能打开。

    做了如下测试:

    ///创建表1
    create table #t1(

    name varchar(20) collate Albanian_CI_AI_WS,

    value int);

    //创建表2
    create table #t2(

    name varchar(20) collate Chinese_PRC_CI_AI_WS,

    value int );

    ///执行如下语句

    select * from #t1 A inner join #t2 B on A.name=B.name

    会抛出如下错误信息:

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

    ///执行如下语句,可成功执行

    select * from #t1 A inner join #t2 B on A.name=B.name collate Albanian_CI_AI_WS

    //查询如下的结果,查看所支持的排序规则。
    select * from ::fn_helpcollations()

    关于此函数的说明,可参见:MSDN

    通过以上的测试,项目中的问题的原因就比较明显了。

    下述是针对Kingdee EAS的说明。

    EAS的单据序时簿所绑定的Query是多表连接的查询,由于多个表之间使用连接查询时,连接条件的字段的排序规则不一致导致

    出现排序规则冲突。

    出现上述问题的原因:

    执行数据库脚本的时候,使用的是sqlserver自带的控制台,而非EAS Admin Console。

    导致执行后排序规则不一致。

    解决办法:

    重新建表,在EAS Admin Console执行数据库脚本。

  • 相关阅读:
    python中numpy的用法
    基于逻辑回归识别坐标是否在第一象限
    python变量,函数
    DOM的核心总结
    节点操作
    自定义属性操作
    排他思想及部分案例
    事件基础及操作元素
    获取元素
    DOM 介绍
  • 原文地址:https://www.cnblogs.com/masb/p/2365383.html
Copyright © 2011-2022 走看看