我建了一个简单的存储过程
create PROCEDURE [dbo].[test]
@PO varchar(20)
AS
Begin
declare @aa varchar(50)
if @PO ='aa'
begin
set @aa='a'
end
return @aa
end当我执行dbo.[test] 'aa'的时候报错
Conversion failed when converting the varchar value 'a' to data type int.
请问是怎么回事?多谢

解决方案 »

  1.   

    当参数为'aa'的时候,
    return 'a'
    这句出错。
    return 只能返回整形的值
      

  2.   

    我是在asp中调用这个存储过程,我可不可以在这个存储过程中调用函数获取返回值?或者直接调用自定义函数?
      

  3.   

    你可以用输出参数做:
    create PROCEDURE [dbo].[test] 
    @PO varchar(20),
    @aa varchar(50) output
    AS 
    Begin    set @aa = ''   if @PO ='aa' 
       begin 
          set @aa='a' 
       end 
    end 
    --调用
    declare @aa varchar(50)
    exec dbo.test @aa output
    select @aa