学习MSSQL2005笔记5--大小写和排序规则
今天在SQL2005中写第一个T-SQL语句,想不到写了很多次的语句竟然报错:
use adventureworks
go
select top 10 * from dbo.databaselog
系统报告dbo.databaselog不存在。
这下把我弄糊涂了!
搞了半天才弄明白,原来数据库对象使用和数据库默认的排序规则有关系,
adventureworks的排序规则是 Latin1_General_CS_AS,CS 是大小写敏感的,难怪如此。我原来已经习惯里了Chinese_PRC_CI_AS,不太注意数据库对象的大小写。
改成下面就通过了。
select top 10 * from dbo.DatabaseLog 。
----------------------------------------------------------------------------------------------
排序规则: 中文默认Chinese_PRC_CI_AS
二进制 (_BIN)
根据为每个字符定义的位模式对 SQL Server 表中的数据进行排序和比较。二进制排序顺序既区分大小写,也区分重音。二进制排序顺序的速度也最快。有关详细信息,请参阅使用二进制排序规则。
如果未选择此选项,则 SQL Server 将遵循字典中定义的相关语言或字母表的排序和比较规则。
BIN2 (_BIN2)
根据 Unicode 数据的 Unicode 码位对 SQL Server 表中的数据进行排序和比较。对于非 Unicode 数据,BIN2 将使用与二进制排序相同的比较方式。
使用 BIN2 排序顺序的优点是:对已排序的 SQL Server 数据进行比较的应用程序不必重新对数据进行排序。因此,如果使用 BIN2,则应用程序开发更为简单,并且可能会提高性能。有关详细信息,请参阅使用二进制排序规则。
区分大小写 (_CS)----对应_CI
区分大写字母和小写字母。如果选择此项,排序时小写字母将在其对应的大写字母之前。
如果未选择此选项,则 SQL Server 认为字母的大小写形式对于排序目的而言是相同的。
区分重音 (_AS)-----对应_AI
区分重音字符和非重音字符。例如,“a”和“?”将被视为不同的字符。
如果未选择此项,在排序时,SQL Server 将把字母的重音形式和非重音形式视为相同。
区分假名 (_KS)
区分日语中的两种假名字符类型:平假名和片假名。
如果未选择此选项,则 SQL Server 认为片假名字符和平假名字符对于排序目的而言是相等的。
区分全半角 (_WS)
区分字符的单字节形式和双字节形式。
如果未选择此项,在排序时,SQL Server 将把同一字符的单字节形式和双字节形式视为相同。
posted on 2006-09-21 17:20 newman0816 阅读(617) 评论(0) 编辑 收藏 举报