把 bj_cpjg_jg_fl表和#sz_temp表 所有数据类型为字符类型和文本类型的列的排序规则改为数据库默认值 

解决方案 »

  1.   

    不用等號,用indelete from bj_cpjg_jg_fl 
    where cpbh=@str_cpbh and wl_id in (select sz_wl from #sz_temp where sz_wl like 'E%' )
      

  2.   

    delete  bj_cpjg_jg_fl from bj_cpjg_jg_fl as a,#sz_temp as b where a.cpbh=@str_cpbh and a.wl_id = b.sz_wl這個句子的語法是錯誤的
      

  3.   

    应该是你的数据库采用了和tempdb数据库不同的排序规则造成的.1. 可以强制指定排序规则解决,注意只加在字符列上delete  bj_cpjg_jg_fl from bj_cpjg_jg_fl as a,#sz_temp as b 
    where a.cpbh=@str_cpbh and a.wl_id collate Chinese_PRC_CI_AS= b.sz_wldelete from bj_cpjg_jg_fl where cpbh=@str_cpbh and wl_id  collate Chinese_PRC_CI_AS= (select sz_wl from #sz_temp where sz_wl like 'E%' )
      

  4.   


    CREATE TABLE #(
    NAME VARCHAR(10) COLLATE database_default  --或者创建临时表的时候指定与当前数据库一致的排序规则
    )--或者手工指定与当前查询使用的表中的对应列一致的排序规则
      

  5.   

    zjcxc(邹建) 的没错 ,加上Chinese_PRC_CI_AS等对等的排序规则就ok
      

  6.   

    邹建大侠:应该是你的数据库采用了和tempdb数据库不同的排序规则造成的.
    那如何把tempdb的排序规则变成Chinese_PRC_CI_AS
      

  7.   

    delete from bj_cpjg_jg_fl where cpbh=@str_cpbh and wl_id  collate Chinese_PRC_CI_AS= (select sz_wl from #sz_temp where sz_wl like 'E%' )邹大侠的这句是行的,,真的谢谢..
    我的tempdb排序是Chinese_PRC_BIN的,,有什么办法可以改
    为什么tempdb的排序规则会这样,我以前的都是Chinese_PRC_CI_AS
      

  8.   

    SQL 排序规则名称
    为 SQL 排序规则指定排序规则名称的单个字符串。语法
    < SQL_collation_name > :: =     SQL_SortRules[_Pref]_CPCodepage_<ComparisonStyle>    <ComparisonStyle> ::=
            _CaseSensitivity_AccentSensitivity | _BIN参数
    SortRules标识字母表或语言的字符串,当指定按字典排序时应用该字母表或语言的排序规则。例如 Latin1_General 或波兰语。Pref指定大写字母优先。Codepage指定标识排序规则所使用的代码页的 1 至 4 个数字的号码。CP1 指定代码页 1252,对于所有其它代码页指定完整代码页号码。例如,CP1251 指定代码页 1251,CP850 指定代码页 850。CaseSensitivityCI 指定不区分大小写,CS 指定区分大小写。AccentSensitivityAI 指定不区分重音,AS 指定区分重音。BIN指定使用二进制排序次序。