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