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)转换成整型时就报错了
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
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就可以不要了
@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)转换成整型时就报错了
@Id int,
@Sex varchar(10)
as
declare @ReturnVar varchar(10)
select @ReturnVar=CustomerName from Customer
where CustomerId=@Id and Sex=@Sex
return 这里改成select @ReturnVar
go
declare @Id int, @Sex varchar(10), @Name varchar(10)
set @Id=14
set @Sex='male'
exec @Name=GetName @Id, @Sex
select @Name这里的select就可以不要了
多谢! Google了下,果真如此。强烈怀疑SQLserver是c写的。 多谢!