Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题

今天写SQL语句的时候,报错。

语句:

      USE DBA;
INSERT INTO SUBJECTDB.ProDefine.ProjectInfo
        ( Code ,
          ProjectCityCode ,
          CnName ,
          Creator ,
          CreateTime ,
          ValidStatus ,
          SortNo ,
 VersionNo,
          VersionStartTime 
         )
SELECT NEWID(),
  CITY.Code,
  INS.项目名称,
  'BDD',
  GETDATE(),
  '1',
  '1',
  '1',
  GETDATE()
FROM BDD_PROJECTINFO_SHIYAN_INSERT INS 
INNER JOIN SUBJECTDB.Common.City CITY ON INS.项目城市 =CITY.CnName
WHERE INS.项目名称  NOT IN(SELECT CnName 
 FROM SUBJECTDB.ProDefine.ProjectInfo
 )

报错:Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L

出错原因:

两个跨库的表的collation不一致

解决办法:在出错的任意列名后面加上collate chinese_prc_ci_as

例如:

        USE DBA;
INSERT INTO SUBJECTDB.ProDefine.ProjectInfo
        ( Code ,
          ProjectCityCode ,
          CnName ,
          Creator ,
          CreateTime ,
          ValidStatus ,
          SortNo ,
 VersionNo,
          VersionStartTime 
         )
SELECT NEWID(),
  CITY.Code,
  INS.项目名称,
  'BDD',
  GETDATE(),
  '1',
  '1',
  '1',
  GETDATE()
FROM BDD_PROJECTINFO_SHIYAN_INSERT INS 
INNER JOIN SUBJECTDB.Common.City CITY ON INS.项目城市 COLLATE chinese_prc_ci_as =CITY.CnName
WHERE INS.项目名称 COLLATE chinese_prc_ci_as NOT IN(SELECT CnName 
 FROM SUBJECTDB.ProDefine.ProjectInfo
 )

语句执行成功之后,插入了一条CREATOR为'BDD',CNNAME为‘在水一方’的数据:

查询:SELECT *
 FROM SUBJECTDB.ProDefine.ProjectInfo
 WHERE Creator='BDD'

结果:

454ED3D2-B2C1-4D43-BEFD-4D02BD0CB219110000 NULL在水一方 NULL1.0000 1.00001.0000 1.0000BDD 2013-08-30 17:07:35.797NULL NULL1 1 1 2013-08-30 17:07:35.797NULL NULLNULL NULL

但是,我现在用CNNAME=‘在水一方’为条件进行查询,结果竟然是空的。

解决办法:改库的排序规则,将另一个S开头的排序规则改为 Chinese_PRC_CI_AS或者在其他库下面建临时表,跟另个表进行关联。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值