科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道课程讲解 如何使用SQL Server校勘功能

课程讲解 如何使用SQL Server校勘功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

校勘是指对代码页、字母大小写、音调、语言和字母表的整理,很多校勘都是在数据进入数据库之前进行的,这篇文章将向您介绍一些相关的校勘方法,以及数据库对多种字符集的处理方法。

作者:builder.com 来源:天新网 2008年4月25日

关键字: Mssql SQL SQL Server

  • 评论
  • 分享微博
  • 分享邮件
列表 E

如果不使用COLLATE,那么会发生非常有意思的事情,运行一下的查询语句:

SELECT * 

FROM CaseCheck.Names

WHERE Name LIKE  N'S%'

您得到的结果是:

NamePK    Name

6    SUNDERIC

7    sUnDeRIc

8    Sunderic

注意,带有特殊字符的'Šunderic'并没有被包含在内,
让我们再来看看另外一个实验:

SELECT * FROM CaseCheck.Names

ORDER BY Name

运行此查询的结果如下:

NamePK    Name

5    Šunderic

1    Fuller

2    FuLLer

3    FULLER

4    fuller

6    SUNDERIC

7    sUnDeRIc

这里有很明显的错误,PK5应当位于'Fuller'之后,我不是语言专家,因此不知道它应该位于Ss的什么位置,但是我觉得这是本地规则造成的结果,很明显,'Šunderic'应该出现在所有的'Fuller'之后,而不是在'Fuller'前面。

我还进行了另外一项实验,使用西里尔字母来拼写我的好朋友Alexander Karmanov的名字,在图片A中您可以看到西里尔字母的拼写,我运行了图片B所示的语句来添加这条记录。

图片A

图片B

图片C

使用默认的字符集,此查询将会返回一系列问号,如果您想得到正确的结果,那么必须需要使用数据库可以接受的Unicode字符集,参见图片C。

如果您想确认一个给定数据库中使用的初始校勘,可以使以下的代码:

SELECT collation_name 

FROM master.sys.databases 

WHERE Name = 'SQLTips'
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章