SQLServer 2008自带的数据类型及说明
数据类型名称 | 类别 | 长度(单位:字节) | 数据特点 |
Bit | 整型 | 1 | 表中的第一个bit数据类型占一个字节;其余7个位也用作bit数据类型。允许空格使其占用一个额外字节 |
Bigint | 整型 | 8 | 可处理日常用到的越来越大的数,取值范围为-263~263-1 |
Int | 整型 | 4 | 取值范围为-2147483648~2147483647 |
SmallInt | 整型 | 2 | 取值范围为-32768~32767 |
TinyInt | 整型 | 1 | 取值范围为0~255 |
Decimal / Numeric | 数字型 | 可变 | 固定精度,取值范围为-1038-1~1038-1,两者含义相同 |
Money | 货币 | 8 | 货币单位,取值范围为-263~263,精确到4个小数位。注意货币单位可以说任意货币,不限于美元 |
SmallMoney | 货币 | 4 | 货币单位,取值为-214748.3648~+214748.3647 |
Float(Real) | 近似小数 | 可变 | 由一参数决定其长度和精度。注:参数表示位数,不是字节数。取值范围为-1.79E+308~1.79E+308 |
DateTime | 日期/时间 | 8 | 日期与时间,取值范围为1753年1月1日~9999年12月31日,精确到0.03秒 |
DateTime2 | 日期/时间 | 可变(6~8) | 新扩展的DateTime典型数据类型。支持更大的日期范围和更高的时间部分精度(精确到100ns)。和DateTime一样,它不包含时区信息,但与.NET的DateTime数据类型相对应 |
SmallDataTime | 日期/时间 | 4 | 日期与时间,取值范围为1990年1月1日~2079年6月6日,精确到分钟 |
DateTimeOffset | 日期/时间 | 可变(8~10) | 类似于DateTime数据类型,但有一个相对于UTC时间的-14:00~+14:00的偏移量。时间在内部存储为UTC时间,任何比较、排序、或索引将基于该统一的时区 |
Date | 日期/时间 | 3 | 只存储Gregorain日历定义的0001年1月1日~9999年12月31日的日期数据。采取ANSI标准日期格式(YYYY-MM-DD),但会从其他一些格式隐式转换 |
Time | 日期/时间 | 可变(3~5) | 只存储用户可选的精度为纳秒(默认)的时间数据 |
Cursor | 特殊小数 | 1 | 指向游标的指针,只占用一个字节,记住组成实际游标的结果集也占用内存,占用内存的大小取决于结果集 |
Timestamp / rowversion | 特殊小数 (二进制) | 8 | 给定数据库的唯一特定值。即使UPDATE语句没有timestamp列(时间标记),但其值在插入或更新记录的时间自动由数据库设定(不允许直接更新timestamp字段) |
UniqueIdentifier | 特殊小数 (二进制) | 16 | 特殊的全局唯一标识符(GUID),必须保证在内存空间和时间内的唯一 |
Char | 字符 | 可变 | 定义字符数据。比设定长短时使用空格填充,为非Unicode数据,最大长度为8000字符 |
VarChar | 字符 | 可变 | 长度可变的字符数据。比设定长度短时不使用空格填充,为非Unicode数据。允许最大长度为8000字符,使用max关键字表示其长度可足够大(数据长度可达231字节) |
Text | 字符 | 可变 | 从SQL Server 2005开始支持向后兼容。可使用varchar(max)代替 |
NChar | Unicode | 可变 | 定长Unicode字符数据。比设定长度短时使用空格填充。最大长度为4000字符 |
NVarChar | Unicode | 可变 | 可变长度的Unicode字符数据。比设定长度短时不使用空格填充。允许最大长度为4000字符,使用关键字表示其长度足够大(数据长度可达231字节) |
Ntext | Unicode | 可变 | 可变长度的Unicode字符数据。类似Text数据类型,仅用作向后兼容,可使用nvarchar(max)代替 |
Binary | 二进制 | 可变 | 定长二进制数,最大特定长度为8000字节 |
VarBinary | 二进制 | 可变 | 可变长度二进制,最大特定长度为8000字节,可使用max关键字使其作为LOB(大对象)字段(数据长度可达231字节) |
Image | 二进制 | 可变 | 从SQL Server 2005开始支持向后兼容。可使用varbinary(max)代替 |
Table | 其他 | 特殊 | 主要用于结果集,通常作为用户自定义函数(UDF)的结果输出或作为存储过程的参数。在表的定义中不作为可用的数据类型 |
HierarchyID | 其他 | 特殊 | 维护层次结构位置信息的特殊数据类型。提供特定于层次结构需要的特殊功能。允许作深度、父/子关系和索引比较。实际尺寸随层次结构中的节点数和平均深度而变 |
Sql_Variant | 其他 | 特殊 | 与VB和C++中的变量基本无关。其实质上用于保存大多数其他SQL Server数据类型的容器。当列或函数需要处理多种数据类型时可使用这种数据类型。与VB不同的是,使用这种数据类型要将其显式转换为更具体的数据类型 |
XML | 字符 | 可变 | 定义一个字符字段用作XML数据。用于针对XML模式的数据验证和使用特殊的面向XML的函数 |
CLR | 其他 | 可变 | 随CLR对象的特性而变,CLR对象支持基于自定义数据类型的CLR |