过程

时间:2016-11-07 00:13:33

标签: sql-server tsql stored-procedures return out-parameters

我是SQL Server新手,我有这个错误,我无法修复:

  

Msg 245,Level 16,State 1,Procedure info,Line 11
  转换varchar值时转换失败' Steven'到数据类型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

1 个答案:

答案 0 :(得分:2)

存储过程的返回值应始终为整数数据类型。 如果使用函数,则可以返回其他数据类型,但只能返回一个值。

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

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