第一次接触Sql sever时,在表中某一列插入中文字符串时出现以下报错场景
说明我字符串定义出错,原本定于为char(5),改为nchar(5)时报错就去掉了。
以下是主要介绍四类字符串类型
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字符串的最长长度在创建时指定,如nvarvhar(50),每个字符占用2bytes存储空间。
(3)ntext: 同text数据类型,只不过存储空间的是最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。
3、使用情况
(1)存在中文 :用Unicode字符串,因为Unicode编码汉字和字母都是2字节,处理速度会快点。
(2)使用定长字符串:用char、nchar;反之用变长字符串。
(3)注重处理速度:用固定长度字符串。