请大侠们帮忙看看,解释一下!!!如果方便,请提供关于char , varchar 类型在存储,取值,比较 等方面的总结性文字。谢谢!=====================drop table t5gocreate table t5 (c1 char(10),c2 varchar(10))goinsert into t5 values ('1','1')insert into t5 values ('2 ','2')insert into t5 values ('3','3 ')insert into t5 values ('4','4 4')select char_length(c1),char_length(c2) from t5/*结果前面两条记录结果10,1 结果符合char与varchar的定义,即存储的时候char自动补空格,varchar 不会自动补空格。但是第三条记录竟然也返回10,1,不可思异!*/select * from t5where c1 = c2/*结果前三条记录都出来了,不可思异!*/declare @var1 varchar(20), @var2 varchar(20), @char char(20)select @var1 = "abcd", @var2 = "abcd ", @char = "abcd"select char_length(@var1), char_length(@var2), char_length(@char)/*执行结果为: 4,5,20以上执行结果符合char与varchar的定义,即存储的时候char自动补空格,varchar 不会自动补空格。 对比上面,晕了!*/
declare @a varchar(20)select @a = "abcd "即使char_length(@a)显示是5个字节,但如果把@a存到varch(20)的表中它的长度就会变成4
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18