用函数返回查询结果时,查询的字符超过255个字符时,也只显示255个字符,其它的截断了。create FUNCTION [pickStrCat03](@CenterId varchar(50),@storeid nvarchar(50),@PICK_BATCH_ID varchar(50)) 
RETURNS  varchar(4000)
AS 
BEGIN 
declare @Str varchar(4000)
set @Str = '' 
select @Str = @Str +isnull( [commodityid],' ')+','+ltrim(str(isnull( sum([quantity]),0)))+';'
from ORDERHISTORY
where [CenterId] = @CenterId and [SToREID]=@STOREID and [PICK_BATCH_ID]=@PICK_BATCH_ID
group by commodityid
return @Str在工具-选项-结果 的设置里面将“每列最多字符数”设为2000了也不起作用。谢谢!

解决方案 »

  1.   

    你用LEN()看看输出的字符串长度,如果不是很短的话,说明输出没问题,可以正常使用
      

  2.   

    你定义的是declare @Str varchar(4000),应该不会只返回255呀?
    改个函数名,重新创建一个试试。
      

  3.   

    用 print 完全没有问题,能够全部显示出来。就是用 select 不行。
      

  4.   

    win2003 + SqlServer2005   在查询分析器里调用函数在表格内显示结果时,只显示255个。
      

  5.   

    用网格(即表格形式)显示查询结果,然后点击表格中的单元格,复制,粘贴到记事本上
    记事本上就是255个。 在函数里用print就没有问题