- 浏览: 16990 次
- 性别:
- 来自: 北京
文章分类
最新评论
SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有
一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据
库默认字符集不同,系统就会返回这样的错误: “无法解决 equal to 操作的排序规则冲突。”
一.错误分析:
这个错误是因为排序规则不一致造成的,我们做个测试,比如:
create table #t1(
name varchar(20) collate Albanian_CI_AI_WS,
value int)
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
这样,错误就出现了:
服务器: 消息 446,级别 16,状态 9,行 1
无法解决 equal to 操作的排序规则冲突。
要排除这个错误,最简单方法是,表连接时指定它的排序规则,这样错误就
不再出现了。语句这样写:
select *
from #t1 A inner join #t2 B
on A.name=B.name collate Chinese_PRC_CI_AI_WS
select *
from #t1 A inner join #t2 B
on A.name=B.name collate Chinese_PRC_CI_AI_WS
--加上collate Chinese_PRC_CI_AI_WS
二.排序规则简介:
什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存
储和比较字符所使用的规则。"
在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。
select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS区分
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据
库默认字符集不同,系统就会返回这样的错误: “无法解决 equal to 操作的排序规则冲突。”
一.错误分析:
这个错误是因为排序规则不一致造成的,我们做个测试,比如:
create table #t1(
name varchar(20) collate Albanian_CI_AI_WS,
value int)
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
这样,错误就出现了:
服务器: 消息 446,级别 16,状态 9,行 1
无法解决 equal to 操作的排序规则冲突。
要排除这个错误,最简单方法是,表连接时指定它的排序规则,这样错误就
不再出现了。语句这样写:
select *
from #t1 A inner join #t2 B
on A.name=B.name collate Chinese_PRC_CI_AI_WS
select *
from #t1 A inner join #t2 B
on A.name=B.name collate Chinese_PRC_CI_AI_WS
--加上collate Chinese_PRC_CI_AI_WS
二.排序规则简介:
什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存
储和比较字符所使用的规则。"
在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。
select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS区分
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
发表评论
-
SpringMVC+ajaxFileUpload上传图片 IE浏览器弹下载框问题解决方案
2017-05-08 08:42 314SpringMVC+ajaxFileUpload上传图片 IE ... -
简单webservice(cxf)实例
2017-04-11 08:56 387我们的环境是eclipse , maven。 在开发java ... -
网站架构之架构演化
2017-03-30 13:50 329http://www.cnblogs.com/pflee/p/ ... -
线程,
2017-03-10 09:07 337http://www.cnblogs.com/wxd0108/ ... -
springmvc<一>一种资源返回多种形式【ContentNegotiatingViewResolver】
2017-03-01 09:53 431springmvc<一>一种资源返回多种形式【Co ... -
<context-param>与<init-param>的区别与作用(转载)
2017-02-28 13:45 396<context-param>的作用: web.x ... -
sqlserver日期格式化函数
2016-09-21 10:16 466Sql Server 中一个非常强大的日期格式化函数 ... -
http://blog.csdn.net/zuoluoboy/article/details/19766131(转载)
2016-07-12 10:04 883Spring工作流程描述 ... -
玩转cookie(转载度娘http://jingyan.baidu.com/article/7c6fb4281f4e5580642c90d0.html)
2015-11-09 10:53 739怎么在java中增加一个cookie; 怎么在java中修改 ... -
jquery插件开发(http://www.poluoluo.com/jzxy/201204/163035.html)
2015-01-25 21:40 531一.介绍 插件编写的目 ... -
hibernate各种查询汇总(转载)
2014-12-23 15:16 3651. 查询整个映射对象所有字段 Java代码 // ... -
hibernate各种查询汇总(转载)
2014-12-23 15:16 01. 查询整个映射对象所有字段 Java代码 // ... -
JAVA多线程实现和应用总结(转载自http://www.cnblogs.com/yezhenhan/archive/2012/01/09/2317636.)
2014-12-22 15:27 513JAVA多线程实现和应用总 ... -
ResultSet rs 之 rs.next()(转载自百度一哥们)
2014-12-16 15:10 819ResultSet rs是结果集。查询出的记录是一个列表,初始 ... -
ResultSet rs 之 rs.next()
2014-12-16 15:10 837ResultSet rs是结果集。查询出的记录是一个列表,初始 ... -
java substring
2014-12-15 17:12 527java substring 方法 str=str.subst ... -
PLSQL插入数据中文乱码的问题(转)
2014-11-26 16:33 3938PLSQL插入数据中文乱码的问题 www.111cn.net ... -
遍历Map的四种方法 (转载)
2014-11-25 10:21 409public static void main(String[ ... -
sql执行顺序
2014-10-08 09:57 323SQL Select语句完整的执行顺序:1、from子句组装来 ... -
jms简明学习教程(转载)
2014-09-04 15:55 446基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利 ...
相关推荐
在 SQL SERVER 中,我们可能会遇到 equal to 运算中的排序规则冲突问题,例如,使用 Chinese_PRC_CI_AS 和 Chinese_PRC_CS_AS 两个字符集时,出现排序规则冲突。这是因为这两个字符集的排序规则不同,导致在 equal ...
**Navicat for SQL Server** 是一款强大的数据库管理和开发工具,专为Microsoft SQL Server设计。它允许用户在不安装SQL Server的情况下,远程连接到数据库,从而实现对SQL Server的便捷管理和操作。Navicat提供了...
SQL Server支持自定义排序规则(Collations),允许我们根据特定的语言和区域设置调整排序和比较行为。例如,对于拼音处理,可以创建一个基于拼音的排序规则,使得中文字符按照拼音首字母排序: ```sql SELECT * ...
数据库引擎配置是数据库的核心配置部分,它包括选择认证模式(Windows认证模式或混合模式),添加SQL Server管理员账户,以及配置排序规则和服务器协议。认证模式的选择取决于用户是希望通过Windows操作系统的认证...
通过理解字符编码和排序规则的概念,以及如何在SQL Server中正确配置它们,可以有效地避免和解决中文乱码问题,确保数据库中的数据能够正确地被存储、检索和显示。在开发和维护涉及多语言的应用时,对这些细节的把握...
《SQL Server精华 (CHM)_sqlserver_SQLServer笔记_》是一部综合性的SQL Server学习资源,旨在帮助用户深入理解和掌握Microsoft SQL Server数据库管理系统的核心概念、功能和最佳实践。这部笔记涵盖了一系列关键知识...
"SQL Server中获取多音字拼音首字母.pdf" 本文主要讨论了在 SQL Server 中...本文提出了一个基于 SQL Server 排序规则的获取汉字拼音首字母的方法,该方法可以解决多音字词组的问题,并且实验结果表明该方法是可行的。
那有没有什么字符集或排序规则,能兼容所有文字的?对于海外项目很痛苦啊 .Oracle 有AL32UTF8 ,MySQL 有UTF8 ,那SQL Server 有吗? 基本概念 ASCII编码 在计算机发明后不久,计算机只在美国用。他们创造出了...
在SQL Server数据库中遇到中文乱码问题,通常是由于安装时默认的排序规则不适用于中文环境导致的。默认情况下,SQL Server可能使用拉丁文排序规则,这在处理中文字符时会出现问题。解决这个问题需要理解SQL Server的...
sqlserver排序规则在全角与半角处理中的应用 sql源码 简单明了好资料
Sql Server 允许两种类型的排序规则:Windows 排序规则和 SQL 排序规则。Windows 排序规则是 Sql Server 的首选,因为它们提供了更多选项并且和微软 Windows 环境提供的支持一致。SQL 排序规则用于早期的 Sql Server...
在 SQL Server 中,`RANK()` 是一个窗口函数,它为每一行分配一个唯一的排名,根据指定的列进行排序。如果两行或多行具有相同的值,则它们将获得相同的排名,并且下一行的排名将跳过相应的数字。例如,如果有两行...
关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。2.在表中将你的...
7. 排序规则:默认即可,除非有特定需求。 8. 服务器配置:建议设置为混合模式,并设置强密码的sa账户。 9. 数据目录:用户数据库文件的位置可自定义,但不建议修改根目录。 10. TempDB配置:设置TempDB数据文件数量...
本文将详细介绍 SQL Server 2005 的排序规则修改,包括修改的必要性、修改的方法和修改后可能遇到的问题。 一、为什么需要修改排序规则? 在 SQL Server 2005 中,默认的排序规则是区分大小写的,这意味着数据库会...
字符与排序规则 排序次序 安装SQL Server的多个实例 安装SQL Server命名实例 1.3 做好安装准备 SQL Server 2005升级向导 1.4 迁移还是升级 迁移 升级 升级后的操作 1.5 选择组件 ...
SQL Server 服务器修改排序规则的方法 SQL Server 服务器修改排序规则的方法是指在 SQL Server 服务器中修改数据库环境的排序规则,以满足不同地区和语言的需求。本文将介绍如何修改 SQL Server 服务器的排序规则,...
SQL Server 区分大小写的相关设置 在 SQL Server 中,默认情况下,数据库是区分大...SQL Server 中的 COLLATE 子句可以用于控制数据库、表和列中的大小写敏感度,用户可以根据需要选择不同的排序规则和大小写敏感度。
本示例主要展示了如何利用SQL Server的排序规则和自定义函数来实现这一功能。 首先,我们要理解SQL Server的排序规则(Collation)。排序规则决定了字符的比较方式,包括字符集(Charset)和排序顺序(Collation)...
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...