数据类型比较多,要记住每一种类型的具体用法不是件容易的事情,记不住的时候可以查看Sql Server帮助查看器,输入数据类型,可以搜到所有类型,不过只有定义,没有例子。

文章主要描述的是SQL Server字符串数据类型(4种)以及各类型何时使用。

1.非Unicode字符串

(1)char

此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定,默认为char(1)。每个字符占用1byte存储空间。

(2)varchar

此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间。

(3)text

此数据类型可存储最大值为2147483647个字符的变长文本,并且无需指定其初始值,每个字符占用1byte存储空间,一般用来存储大段的文章。text数据类型实际上是一个Large Object数据类型,默认情况下,此类型的数据不是存储在数据行内,而是存储于独立的Large Object数据页上。另外,text数据类型不能做为函数、存储过程或触发器中的参数来用。

2.Unicode字符串

(1)nchar

此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。

(2)nvarchar

此数据类型可存储最大值为4000个字符可变长Unicode字符串。可变长Unicode字符串的最大长度在创建时指定,如nvarchar(50),每个字符占用2bytes存储空间。

(3)ntext

同text数据类型,只不过存储的是最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。

3.使用

(1)如果有中文,那就用Unicode字符串吧,因为Unicode编码汉字和字母都是2字节,处理速度会快点。

(2)如果是定长的就用固定长度字符串char,nchar;否则用变长字符串。

(3)如果注重处理速度用固定长度字符串。