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
我是 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