本帖最后由 suanleba10 于 2013-08-20 10:52:41 编辑

解决方案 »

  1.   

    create proc GetName
    @Id int,
    @Sex varchar(10)
    as
    declare @ReturnVar varchar(10)
    select @ReturnVar=CustomerName from Customer
    where CustomerId=@Id and Sex=@Sex
    return @ReturnVar --问题出现在这一行. 存储过程的RETURN值是一个整数类型。你这儿RETURN的是字符型。所以从字符型(Bern)转换成整型时就报错了
      

  2.   

    create proc GetName
    @Id int,
    @Sex varchar(10)
    as
     
    declare @ReturnVar varchar(10)
    select @ReturnVar=CustomerName from Customer
    where CustomerId=@Id and Sex=@Sex
    return  这里改成select @ReturnVar
      

  3.   

    use TestForProc 
    go
    declare @Id int, @Sex varchar(10), @Name varchar(10)
    set @Id=14
    set @Sex='male'
    exec @Name=GetName @Id, @Sex
    select @Name这里的select就可以不要了
      

  4.   


    多谢! Google了下,果真如此。强烈怀疑SQLserver是c写的。 多谢!