zoukankan      html  css  js  c++  java
  • SQL Server 数据类型

    1、uniqueidentifier存储为二进制值,为什么是16字节呢?0~f 共16 种表示,有16*16=256,也有2^8=256(值域为0~255),去掉四个连接字符,即表示为16字节。
    2、varchar和nvarchar属变长型,存储时会增加一个int类型(四个字节)记录内容长度。
    3、nchar和nvarchar类型存储为Unicode数据,占用两个字节,所以字节数要算双份。

    GUID做主键,字段类型为char(36),数据记录索引与排序依据肯定是字符串的从左到右,即:12345678-0000-0000-0000-000000000000
    GUID做主键,字段类型为uniqueidentifier,数据记录索引与排序依据将是后六字节,即:00000000-0000-0000-0000-1234567890ab
    为什么会这样?数据存储为uniqueidentifier时,会体现为SqlGuid 结构。
    MSDN描述有:SqlGuid使用 SQL Server行为实现CompareTo,该行为只计算值的最后6个字节。Guid 计算全部 16 个字节。

    SQL SERVER 2005中新增的NEWSEQUENTIALID()函数,参考MSDN中链接http://msdn.microsoft.com/zh-cn/library/ms189786.aspx。其后六字节是有序列的(字符串的后12位)。
    newsequentialid() 内置函数只能在 CREATE TABLE 语句或 ALTER TABLE 语句中 'uniqueidentifier' 类型的列的 DEFAULT 表达式中使用。不能与其他运算符一起用来构成复杂的标量表达式。

  • 相关阅读:
    系统的讲解
    后端架构师技术图谱
    设计模式简介(45种)
    浅入浅出 Go 语言接口的原理
    我所认为的RESTful API最佳实践
    Mysql 索引精讲
    客户端与服务端的三次握手与四次挥手
    线程的安全和可重入(待续)
    进程和线程(待续)
    设计模式(3)--观察者模式(待续)
  • 原文地址:https://www.cnblogs.com/judgelee/p/2616250.html
Copyright © 2011-2022 走看看