varchar变量 长度问题?
declare @str varchar(8000)
set @str= ' '
select @str= @str+col1 from table1
print @str
print len(@str)
以上语句执行结果,@str被截,len(@str)=4000,为何?
------解决方案--------------------后面如果有空格的话,其长度是不计的.
------解决方案--------------------LEN
傳回給定的字串運算式之字元數而非位元組數,字串末尾的空白不計。
不是變量定義的長度
------解决方案--------------------declare @str varchar(8000)
Select @str = 'aa '
Select Len(@str)
--2
------解决方案--------------------最好改成这样:
declare @str varchar(8000)
set @str= ' '
select @str= rtrim(@str)+ltrim(rtrim(col1)) from table1
print @str
print len(@str)
------解决方案--------------------varchar+nvarchar=nvarchar
nvarchar()最多字符串长度4000
------解决方案--------------------用datalength才是真正的长度
len(@str)换成datalength(@str)试一下
应该你的是汉字等字符吧,所以当然只能查出4000了