选择正确的SQL Server排序规则进行存储

时间:2009-12-01 13:05:04

标签: sql-server collation

排序规则如何影响SQL Server的存储空间以及它如何影响Unicode和非unicode数据类型?

  • 整理会影响Unicode存储吗?或者只管理数据库中的排序规则?

  • 当我使用非unicode数据类型时,哪些撤销与整理有关?

  • 如果限制适用,当我尝试存储不在非unicode数据类型的数据库归类中的字符时会发生什么?

我的理解是Unicode数据类型总是可以存储整套Unicode数据,而非unicode数据类型存储功能取决于代码页(由排序规则定义),并且只能代表一些常见的该校对中的字符。

显然,Unicode数据类型中的每个字符至少占用2个字节,而非unicode数据类型占用每个字符1个字节(或者这也随着整理而变化?)

请直接告诉我,这是如何工作的?

1 个答案:

答案 0 :(得分:6)

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

归类仅影响排序(和套管)。

在非Unicode数据类型(TEXT,VARCHAR)中,每个字符只使用一个字节,并且只能存储排序规则代码页的字符(正如您所说)。见MSDN article on collations