len 和 varchar(max) 的问题

devforever 2011-03-16 02:03:38
求教!! 如下的SQL语句:

declare @temp varchar(max)
select @temp = 'ABCD '

select len(@temp)

为什么我在一台服务器上的到的结果是4, 而另外一台是5. 按照LEN的定义,最后的空格不是应该忽略不计吗? 是不是数据库本身的设置的问题呀?

还有,发现如果不是用VARCHAR(MAX),而是给定一个数值,比如VARCHAR(200),就没有区别了.
...全文
111 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
andy_liucj 2011-03-16
在sql2005 xp sp3 上左右空格都没有去掉
回复
叶子 2011-03-16
估计是数据库版本的问题?
回复
快溜 2011-03-16
没事可以百度下len函数源码。默认应该是去掉左右空格的。
回复
devforever 2011-03-16
我知道,只是觉得同样的语句在不同数据库服务器上(相同的MSSQL版本)为什么会产生不同的结果,而且只在VARCHAR(MAX)时出现.我是想了解一下可能会是什么原因造成这样的结果
回复
估计需要打下补丁,你先检查下两个服务器的数据库版本是不是不同,直接
select @@Version
回复
--小F-- 2011-03-16
最好还是select len(rtrim(ltrim(@temp)))
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2011-03-16 02:03
社区公告
暂无公告