2009-12-01 53 views
4

排序规则如何影响SQL Server的存储以及它如何影响Unicode和非Unicode数据类型?为存储选择正确的SQL Server排序规则

  • 排序规则是否影响Unicode存储?或仅仅管理数据库内的排序规则?

  • 当我使用非unicode数据类型时,哪些restictions与排序规则相关联?

  • 如果有限制,当我尝试存储不是非Unicode数据类型的数据库整理中的字符时会发生什么?

我的理解是Unicode数据类型可以总是存储所述全套Unicode数据的同时非Unicode数据类型存储capabilties依赖的代码页(其通过核对所定义的)上,并只能代表整理中的许多常用字符。

显然,在一个Unicode数据类型每一个字符将至少占用2个字节,而非Unicode数据类型占据每个字符1个字节(或这是否与核对变化呢?)

设置我直这里,这是如何工作的?

回答

6

SQL Server将Unicode数据(NTEXT,NVARCHAR)存储在UCS2中,每个字符总是导致2个字节。

排序只影响排序(和套管)。

在非Unicode数据类型(TEXT,VARCHAR)中,每个字符只使用一个字节,并且只能存储排序规则代码页的字符(就像您陈述的那样)。看到这个MSDN article on collations