实验表格
--LEN (参数) --计算指定参数的字符串个数,不区分中英文
--DataLength(参数) --计算指定参数所占据的字节长度。一个英文一个字节,一个中文两个字节。
SELECT LEN('aa') --2
SELECT LEN('计算值') --3
SELECT DATALENGTH(N'计算值') --6 (N表示是否采用unicode,)
--char 存储的数据小于指定空间的时候,空间不会收缩。若大于则会被二进制截断,并报错。
SELECT LEN(Char) FROM charTest --2
SELECT DATALENGTH(Char) FROM charTest --10
--varchar var--variable 可变的,说明分配的空间是一个可以动态变化的空间。
--当存储的字符长度小于分配的空间的时候,多余的空间会被自行回收,但是大于的时候会报错,且性能较差,比如做判断空间是否会回收,遍历等。
SELECT LEN(Varchar) FROM charTest --2
SELECT DATALENGTH(Varchar) FROM charTest --2
--注意:在何时使用,应该视情况而定。
--nchar n--unicode:不管哪种字符都会使用两个字节进行存储
SELECT LEN(Nchar) FROM charTest --2(即两个字符)
SELECT DATALENGTH(Nchar) FROM charTest --20(N个char,char空间是固定的)
--nvarchar
SELECT LEN(Nvarchar) FROM charTest --2(即两个字符)
SELECT DATALENGTH(Nvarchar) FROM charTest --4(N个char,char空间不是固定的)