Bit |
整型 |
1 |
表中的第1个Bit数据类型占1个字节;其余7个位也用作Bit数据类型。允许空格使其占用一个额外字节 |
Bigint |
整型 |
8 |
可处理日常用到的越来越大的数,其取值范围为 -2^63 ~ 2^63 - 1 |
Int |
整型 |
4 |
取值范围为 -2 147 483 648 ~ 2 147 483 647 |
SmallInt |
整型 |
2 |
取值范围为 - 32 768 ~ 32 767 |
TynyInt |
整型 |
1 |
取值范围为 0 ~ 255 |
Decimal/Numeric |
数字型 |
可变 |
固定精度,取值范围为 -10^38 - 1 ~ 10^38 - 1。两者含义相同 |
Money |
货币 |
8 |
货币单位,取值范围为 - 2^63 ~ 2^63,精确到4个小数位。注意货币单位可以是任意货币,不限于美元 |
SmallMoney |
货币 |
4 |
货币单位,取值范围为 - 214 748.3648 ~ + 214 748.3647 |
Float(Real) |
近似小数 |
可变 |
由一参数(如 Float(20))决定其长度与精度。注意参数值表示位数,不是字节数。取值范围为 -1.79E + 308 ~ 1.79E + 308 |
DateTime |
日期/时间 |
8 |
日期与时间,取值范围为1753年1月1日 ~ 9999 年12月31日,精确到0.03秒 |
DateTime2 |
日期/时间 |
可变(6~8) |
新扩展的DateTime典型数据类型。支持更大的日期范围和更高的时间部分精度(精确到 100 纳秒)。和 DateTime 一样,它不包含时区信息,但与.NET
DateTime数据类型相对应 |
SmallDateTime |
日期/时间 |
4 |
日期与时间,取值范围为 1900年1月1日 ~ 2079年6月6日,精确到分钟 |
DateTimeOffset |
日期/时间 |
可变(8~10) |
类似于DateTime数据类型,但有一个相对于UTC时间的 -14:00 ~ + 14:00
的偏移量。时间在内部存储为UTC时间,任何比较、排序或索引将基于该统一的时区 |
Date |
日期/时间 |
3 |
只存储Gregorian日历定义的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数据,最大长度为8 000字符 |
VarChar |
字符 |
可变 |
长度可变的字符数据。比设定长度短时不使用空格填充,为非Unicode数据。允许最大长度为8
000字符,使用max关键字表示其长度可足够大(数据长度可达2^31字节) |
Text |
字符 |
可变 |
从SQL Server 2005开始支持向后兼容。可使用varchar(max)代替 |
NChar |
Unicode |
可变 |
定长Unicode字符数据。比设定长度短时使用空格填充。最大长度为4 000字符 |
NVarChar |
Unicode |
可变 |
可变长度的Unicode字符数据。比设定长度短时不使用空格填充。允许最大长度为4 000字符,使用max关键字表示其长度可足够大(数据长度可达2^31字节) |
Ntext |
Unicode |
可变 |
可变长度的Unicode字符数据。类似Text数据类型,仅用作向后兼容。可使用nvarchar(max)代替 |
Binary |
二进制 |
可变 |
定长二进制数,最大长度为8 000字节 |
VarBinary |
二进制 |
可变 |
可变二进制数,最大特定长度为8 000字节,可使用max关键字使其作为LOB(大对象)字段(数据长可达2^31字节) |
Image |
二进制 |
可变 |
从SQL Server 2005开始支持向后兼容。可使用varbinary(max)代替 |
Table |
其他 |
特殊 |
主要用于结果集,通常作为用户自定义函数(UDF)的结果输出或作为存储过程的参数。在表的定义中不作为可用的数据类型 |
HierachyID |
其他 |
特殊 |
维护层次结构位置信息的特殊数据类型。提供特定于层次结构需要的特殊功能。允许作深度、父/子关系和索引比较。实际尺寸随层次结构中的节点数和平均深度而变 |
Sql_variant |
其他 |
特殊 |
与VB和C++中的变量基本无关。其实质是用于保存大多数其他SQL
Server数据类型的容器。当列或函数需要处理多种数据类型时可使用这种数据类型。与VB不同的是,使用这种数据类型要将其显式转换为更具体的数据类型 |
XML |
字符 |
可变 |
定义一个字符字段用作XML数据。用于针对XML模式的数据验证和使用特殊的面向XML的函数 |
CLR |
其他 |
可变 |
随CLR对象的特性而变,CLR对象支持基于自定义数据类型的CLR |