【问题标题】:database physical storage for character type字符类型的数据库物理存储
【发布时间】:2010-10-25 04:50:26
【问题描述】:

对于SQL Server 2005/2008,经过一些自学,我不确定我对字符数据类型如何物理存储的理解是否正确。请帮忙查看和评论。这是我的理解,请查看并随时纠正我。

  • 当使用 unicode 字符类型(例如 nvarchar)时,底层字符以 UCS-2 编码存储(即,字符以相关 UCS-2 为字符定义的位序列的形式物理存储)。 Collat​​ion 定义了比较和排序,这种情况下没有代码页;

  • 当使用非 unicode 字符类型(例如 varchar)时,底层字符物理存储为由排序规则定义的相关代码页中定义的位。所以在这种情况下,collat​​ion 不仅定义了比较/排序,还定义了哪个codepage(字符,位值代表字符,并使用相同的位值将字符存储在数据库物理存储中)。

提前致谢, 乔治

【问题讨论】:

    标签: sql-server encoding storage character


    【解决方案1】:

    我认为你很聪明,请参阅链接了解更多信息 http://www.sql-server-helper.com/faq/data-types-p01.aspx

    【讨论】:

    • 我的另一个困惑是——字符在物理上与 UCS-2 中定义的相关位序列相同(使用 unicode 字符数据类型时)/代码页(使用非 unicode 字符数据类型时) ),没有额外的转换级别(在 UCS-2/codepage 中定义的物理存储和相关位序列之间)?
    • 顺便说一句:在引用的文档中,我没有找到字符数据类型位的物理存储方式,即是否与 UCS-2/codepage 定义的位序列相同或使用其他格式(具有额外级别的位序列转换)。
    猜你喜欢
    • 2020-05-03
    • 2021-12-15
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2020-03-03
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多