从存储过程返回非表类型的值有二种方法: 1.存储过程使用return语句返回值.此种情况下,接收该存储过程值的方法是: delcare @ReturnValue int /*(与存储过程return语句返回值的类型相同)*/ exec @ReturnValue = StoredProc /*StoredProc为一个存储过程*/ 2.存储过程使用OUTPUT输出参数.此种情况下,直接使用OUTPUT输出参数即可: declare @id int set @id = 1 exec StoreProc @id OUTPUT /*StoredProc为一个存储过程*/ select @id
假设有这样定义的存储过程checkstateCREATE PROCEDURE checkstate @param varchar(11) AS IF (SELECT state FROM authors WHERE au_id = @param) = 'CA' RETURN 1 ELSE RETURN 2 下例显示从 checkstate 执行中返回的状态。第一个显示的是在加利福尼亚州的作者;第二个显示的是不在加利福尼亚州的作者,第三个显示的是无效的作者。必须先声明 @return_status 局部变量后才能使用它。DECLARE @return_status int EXEC @return_status = checkstate '172-32-1176' SELECT 'Return Status' = @return_status GO OutPut是通过参数传递值的