SQL 数据类型

在 SQL Server 中，每个列、局部变量、表达式和参数都具有一个相关的数据类型。数据类型是一种属性，用于指定对象可保存的数据的类型：整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。

SQL Server 提供系统数据类型集，该类型集定义了可与 SQL Server 一起使用的所有数据类型。

当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时，结果的特征由以下规则确定：

结果的数据类型是通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定的。

当结果数据类型为 char、varchar、text、nchar、nvarchar 或 ntext 时，结果的排序规则由排序规则的优先顺序规则确定。有关详细信息，请参阅排序规则优先级 (Transact-SQL)。

结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。

SQL Server 2005 提供了数据类型同义词以保持 SQL-92 兼容性。

## 数据类型类别

SQL Server 中的数据类型归纳为下列类别：

精确数字 | Unicode 字符串
近似数字 | 二进制字符串
日期和时间 | 其他数据类型
字符串 |

在 SQL Server 2005 中，根据其存储特征，某些数据类型被指定为属于下列各组：

大值数据类型：varchar(max)、nvarchar(max) 和 varbinary(max)

大型对象数据类型：text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max) 和 xml

精确数字

bigint | decimal
int | numeric
smallint | money
tinyint | smallmoney
bit |

近似数字

float | real

日期和时间

datetime | smalldatetime

字符串

char | text
varchar |

Unicode 字符串

nchar | ntext
nvarchar |

二进制字符串

binary | image
varbinary |

其他数据类型

cursor | timestamp
sql_variant | uniqueidentifier
table | xml