我是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
答案 0 :(得分:2)
存储过程的返回值应始终为整数数据类型。 如果使用函数,则可以返回其他数据类型,但只能返回一个值。
由于您需要存储过程中的两个值,因此可以使用两个输出参数...
CREATE PROCEDURE info2 (@id int , @howMuch int OUTPUT, @name varchar(100) OUTPUT) AS