转换失败,在T-SQL中声明了变量

时间:2013-11-22 19:39:10

标签: sql sql-server tsql

尝试在SQL Server中编写此存储过程时出现此错误。对于我的生活,我不知道为什么。有线索吗?

BEGIN
declare @output varchar(max)

select @output = COALESCE(@output + ',','') + CONVERT(varchar(150), AGE_START)
from tblRaceCategories
where RACE_ID = 13

return @output
END

我得到的错误是:

  

转换varchar值时转换失败' 5,8,11,16,21,31,41,51,61,16,21,31,41,51,61'数据类型int。

哪个没有意义,我已将@output声明为varchar,我已将AGE_START转换为varchar。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

返回值只能是int类型,即转换失败的位置。

使用输出变量而不是返回字符串。例如:

create procedure Demo
  @output varchar(max) out
as
...