①char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的
同义词为 character。
②varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为
输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
③从定义可以看出char的话你插入超过n的就会被截断,语句终止,如果插入小于n的也会被截断,语句终止。如果插入小于n个字节,存储空间大小问实际插入的字节数。
④官方参考资料:
当指定了 NOT NULL 子句时,char
数据类型是固定长度数据类型。如果一个比列的长度小的值被插入到 char NOT NULL 列中,则值的右边以空格填补剩余的位置。例如,如果一个列被定义为 char(10) 并且要存储的数据是"music",则 SQL
Server 将这个数据存储为"music_____",这里"_"表示空格。
当创建一个 char NULL 列时,如果 ANSI_PADDING 是ON,它的表现就如同一个 char NOT
NULL列:值的右边按照列的大小进行填补。当创建一个 char NULL 列时,如果 ANSI_PADDING 是 OFF,它的表现就如同一个将
ANSI_PADDING 设置为 OFF 的 varchar 列:尾随空格将被截断。
varchar 是可变长度的数据类型。比列的长度小的值,不会按照列的长度在其右边填补。当创建列时,如果 ANSI_PADDING 选项设为 OFF,则所有存储在列中的字符值的尾随空格都将被截断。当创建列时,如果 ANSI_PADDING 设为 ON,则尾随空格不被截断。