类型 | 说明 |
char(n) | 是固定宽度的字符串。它最多可以存储8,000个字符。 |
varchar(n) | 是可变宽度的字符串。它最多可以存储8,000个字符。 |
varchar(max) | 是可变宽度的字符串。它最多可以存储1,073,741,824个字符。 |
text | 是可变宽度的字符串。它最多可以存储2GB的文本数据。 |
nchar | 是固定宽度的unicode字符串。它最多可以存储4,000个字符。 |
nvarchar | 这是一个可变宽度的unicode字符串。它最多可以存储4,000个字符。 |
nvarchar(max) | 这是一个可变宽度的unicode字符串。它最多可以存储536,870,912个字符。 |
ntext | 这是一个可变宽度的unicode字符串。它最多可以存储2GB的文本数据。 |
bit | 它允许0、1或NULL值。 |
binary(n) | 是固定宽度的二进制字符串。它最多可以存储8,000bytes |
varbinary | 是可变宽度的二进制字符串。它最多可以存储8,000bytes |
varbinary(max) | 是可变宽度的二进制字符串。它最多可以存储2GB。 |
image | 是可变宽度的二进制字符串。它最多可以存储2GB。 |
类型 | 说明 | 存储 |
tinyint | 允许整数从0到255 | 1byte |
smallint | 允许-32,768到32,767之间的整数 | 2bytes |
int | 允许整数在-2,147,483,648和2,147,483,647之间 | 4bytes |
bigint | 允许在-9,223,372,036,854,775,808和9,223,372,036,854,775,807之间的整数 | 8bytes |
decimal(p,s) | 固定的精度和小数位数。允许从-10 ^ 38 +1到10 ^ 38?1的数字。p参数表示可以存储的最大位数(在数字的左侧和右侧)小数点)。 p必须为1到38之间的值。默认值为18、s参数指示存储在小数点右边的最大位数。 s必须是从0到p的值。默认值为0 | 5-17bytes |
numeric(p,s) | 固定的精度和小数位数。允许从-10 ^ 38 +1到10 ^ 38?1的数字。p参数表示可以存储的最大位数(在数字的左侧和右侧)小数点)。 p必须为1到38之间的值。默认值为18、s参数指示存储在小数点右边的最大位数。 s必须是从0到p的值。默认值为0 | 5-17bytes |
smallmoney | 从-214,748.3648到214,748.3647的货币数据 | 4bytes |
money | 货币数据从-922,337,203,685,477.5808到922,337,203,685,477.5807 | 8bytes |
float(n) | 浮点精度数字数据从-1.79e + 308到1.79e +308、n参数指示该字段应容纳4字节还是8字节。 float(24)保存4字节字段,float(53)保存8字节字段。 n的默认值为53、 | 4或8bytes |
real | 浮动精度数字数据从-3.40e + 38到3.40e + 38 | 4bytes |
类型 | 说明 | 存储 |
datetime | 它指定1753年1月1日至9999年12月31日之间的日期和时间,精度为3.33毫秒。 | 8bytes |
datetime2 | 它指定从0001年1月1日到9999年12月31日的日期和时间,精度为100纳秒。 | 6-8字节 |
smalldatetime | 它指定从1900年1月1日到2079年6月6日的日期和时间,精度为1分钟。 | 4bytes |
date | 它仅用于存储日期。它指定了从0001年1月1日到9999年12月31日的日期。 | 3bytes |
time | 它仅用于存储时间到100纳秒的精度。 | 3-5bytes |
datetimeoffset | 与datetime2相同,只是增加了时区偏移。 | 8-10bytes |
timestamp | 它存储一个唯一编号,该编号在每次创建或修改行时都会更新。时间戳值基于内部时钟,与实时不符。每个表可能只有一个时间戳变量。 |