4

排序规则在存储方面对 SQL Server 有何影响?这对 Unicode 和非 Unicode 数据类型有何影响?

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

  • 当我使用非 unicode 数据类型时,排序规则有哪些限制?

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

我的理解是,Unicode 数据类型始终可以存储完整的 Unicode 数据集,而非 Unicode 数据类型的存储能力取决于代码页(由排序规则定义),并且只能表示其中的一些常见字符整理。

显然,Unicode 数据类型中的每个字符至少占用 2 个字节,而非 Unicode 数据类型每个字符占用 1 个字节(或者这是否也随排序规则而变化?)

让我直接在这里,这是如何工作的?

4

1 回答 1

6

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

排序规则只影响排序(和大小写)。

在非 Unicode 数据类型(TEXT、VARCHAR)中,每个字符仅使用一个字节,并且只能存储排序规则代码页的字符(正如您所说)。请参阅有关排序规则的这篇MSDN 文章

于 2009-12-01T13:12:12.667 回答