SQL 服务器输出和过程中的 return 值

SQL Server output and return value in procedure

我是 SQL 服务器的新手,我遇到了无法修复的错误:

Msg 245, Level 16, State 1, Procedure info, Line 11
Conversion failed when converting the varchar value 'Steven' to data type int

你能告诉我错误在哪里吗?我该如何解决?

代码如下 谢谢

CREATE PROCEDURE info (@id int, @howMuch int OUTPUT) 
AS
   SELECT * 
   FROM emp 
   WHERE empno = @id;

   SELECT @howMuch = COUNT(*) 
   FROM emp;

   DECLARE @name varchar(100)

   SELECT @name = ename 
   FROM emp 
   WHERE empno = @id

   RETURN @name

-- execute the procedure. It throws error.
DECLARE @num_rows int, @who varchar(100)
EXECUTE @who = info 100, @num_rows OUTPUT

SELECT @num_rows, @who

存储过程的 return 值应始终为整数数据类型。 如果您使用一个函数,您可以 return 其他数据类型,但您只能有一个值 returned.

由于存储过程需要两个值,因此可以使用两个输出参数...

CREATE PROCEDURE info2 (@id int , @howMuch int OUTPUT, @name varchar(100) OUTPUT) AS