最近在执行一些跨库关联查询语句的时候提示了 “Cannot resolve the collatior conflict between "Chinese_PRC_Ci As" and "soL Latini_General_CPi_Ci As" in the equal tol peratn” 的错误,查询整理一下相关资料如下:

排序规则

排序规则指定表示数据集中每个字符的位模式。 排序规则还确定数据的排序和比较规则,单个库可能存在多个不同的排序规则,通过语句

SELECT CONVERT(nvarchar(128), SERVERPROPERTY('collation'));

可以查询当前实例的排序方式 .

排序规则冲突原因

当连接有两个不同排序规则的表或者列的时候,会导致无法关联,无法比较,从而报错。比如我们有两个表,一个表使用Latin1_General_100_CI_AI_SC_UTF8排序规则,另一个表使用Chinese_PRC_CI_AS排序规则。当我们尝试比较或连接这两个表时,就会遇到排序规则冲突问题。

解决冲突的办法

1.使用COLLATE语句

使用 COLLATE 关键字可以显示的指定排序方式,在连接或者比较的时候使用可以覆盖原有的排序规则,例如:

   Select * from A Inner Join B On A.Id = B.Id
//修改后
Select * from A Inner Join B On A.Id COLLATE Chinese_PRC_CI_AS = B.Id

2.修改数据库或者表的默认排序规则

如果频繁出现规则冲突,可以将某个表的规则调整,

ALTER DATABASE [db01] COLLATE Chinese_PRC_CI_AS

另外,当处理有数据的表的时候该语句不会生效,可以通过:

1.创建一个正确排序规则的table

2.数据从旧表复制过来

3.删除原表

4.新表重命名

SQL无法解决排序规则 Chinese_PRC_CI_AS 和 Latin1_General_CI_AS 的冲突的更多相关文章

  1. 全库修改SQL Server现有排序规则

    近日,在项目Debug过程中发现了SQL Server排序规则冲突的问题. 由于原数据库是从英文环境的SQL中生成的,其排序规则为“SQL_Latin1_General_CP1_CI_AS”,备份到本 ...

  2. SQL SERVER 的排序规则

    有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的. 也就是说 select * from tabletest where name = ...

  3. SQL Server更改排序规则的实现过程

    摘自: http://www.2cto.com/database/201112/115138.html 以下的文章主要向大家描述的是SQL Server更改排序规则的实现过程,以及在实现其实际操作过程 ...

  4. linux / centos 安装SQL Server 2017 设置默认语言与排序规则Chinese_PRC_CI_AS

    安装 安装很简单参照官方教程 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sq ...

  5. SQL SERVER修改排序规则——脚本篇

    在上篇MS SQL 排序规则总结中,大致就数据库服务器排序规则(或者叫数据库实例排序规则).数据库排序规则.列的排序规则粗浅的叙说了一遍,重点讲述了修改数据库服务器排序规则(数据库实例排序规则),其中 ...

  6. SQL SERVER 强制排序规则查询

    有时会需要在2个DB之间的数据做比较, 但因为一些原因, 数据库的默认排序规则是不一样的, 例如 SELECT A.Col1, B.Col1, A.* FROM DB1.dbo.A LEFT JOIN ...

  7. 修改SQL Server 的排序规则(转)

    转自http://jimshu.blog.51cto.com/3171847/1095780/ 一.修改SQL Server服务器(实例)的排序规则 以下实验使用了SQL Server 2008 R2 ...

  8. [转]SQL SERVER 的排序规则

    如何更改SQL SERVER 2000的排序规则 -- 增加复合主键语句 Alter Table tableName Add primary key (field1,field2) Alter dat ...

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

    不同的排序规则的字段是不能直接比较的.会提示:无法解决 equal to 操作的排序规则冲突.可以把字段强制转换一个排序规则,这样就能比较了.示例: ------------------------- ...

  10. 修改SQL Service数据库排序规则

    修改数据库 alter   database   KidsPang   COLLATE   Chinese_PRC_CI_AS 修改表中字段ALTER TABLE [Member] ALTER COL ...

随机推荐

  1. 松灵机器人scout mini小车 自主导航(3)——建图导航仿真

    松灵机器人Scout mini小车建图导航仿真 在之前的文章中,我们已经介绍了如何在gazebo和rviz对scout mini小车进行仿真,并且测试了添加自定义的传感器,在本文章中将进一步介绍如何利 ...

  2. redis基本数据结构-列表

    redis基本数据结构-列表list 特性 每个列表键最多存储 2^32 - 1个字符串元素 元素在列表中有序 元素在列表中不唯一 向列表左侧添加元素 lpush key value lpush nu ...

  3. Element-plus的徽章组件el-badge

    Element-plus的徽章组件el-badge Element Plus 是一个基于 Vue.js 的 UI 组件库,它提供了一系列的常用 UI 组件供开发者使用.其中,徽章组件(el-badge ...

  4. DSCL:已开源,北京大学提出解耦对比损失 | AAAI 2024

    监督对比损失(SCL)在视觉表征学习中很流行.但在长尾识别场景中,由于每类样本数量不平衡,对两类正样本进行同等对待会导致类内距离的优化出现偏差.此外,SCL忽略了负样本之间的相似关系的语义线索.为了提 ...

  5. 系动词&使役动词

    系动词 系动词的作用就是赋值 I am a rabbit 把 a rabbit赋值给i我 我是一只兔子 The rabbit is smart 这兔子是聪明的 smart赋值给兔子 系动词连系的方式, ...

  6. 【H5】06 网页架构

    摘自: https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/%E6%96%87%E4%BB%B6%E5%9 ...

  7. NVIDA GPU-SXM和NVIDA GPU-PCIe 两种类型显卡到底哪个性能更高?

    相关: 大模型时代该用什么样的显卡 -- 实验室新进两块A800显卡 浅析:NVIDA GPU卡SXM和PCIe之间的差异性 原来SXM类型的显卡比PCIex类型显卡性能要高.PCIE版本是通用接口, ...

  8. 后端开发学习敏捷需求-->产品价值的定位

    产品价值的定位 为什么要写这一系列文章 2023年网上报名学习了,敏捷软件需求的培训课程 ,一直都没有进行回顾,回顾学习,总结 业务分析的能力偏弱,学习和了解关于业务需求相关的方法和理论 每一年都有一 ...

  9. rest_framework与django配合使用

    rest_framework与django配合使用 rest_framework与django配合使用   一.构建表单,在这里我们先构建五个表单,分别是 author book publish us ...

  10. SMU 2024 spring 天梯赛3

    SMU 2024 spring 天梯赛3 7-1 重要的话说三遍 - SMU 2024 spring 天梯赛3 (pintia.cn) I'm gonna WIN! I'm gonna WIN! I' ...