存储过程可以 “回归” 三种东西:
- int返回值,通过
RETURN
命令
- 输出参数值,通过参数表:
@YourPartameter anydatatype OUTPUT
- 结果集:
SELECT * FROM YourTable
你的程序没有正常退出一个RETURN
命令,所以它默认的值为零。如果返回值为零,则需要检查应用程序中的结果集。
试试这个返回接触值:
CREATE PROCEDURE AUthorContract
@user varchar(10)
AS
DECLARE @contract int
IF(@user NOT IN(select Au_id from Authors))
BEGIn
RETURN -900
END
ELSE
BEGIN
select @contract=contract from from Authors where Au_id = @user
END
RETURN @contract
GO
尝试这种使用OUTPUT参数:
CREATE PROCEDURE AUthorContract
@user varchar(10), @contract varchar(30) OUTPUT
AS
IF(@user NOT IN(select Au_id from Authors))
BEGIn
RETURN -900
END
ELSE
BEGIN
select @contract=contract from from Authors where Au_id = @user
END
RETURN 0
GO
下面是结果集,有明确的回报:
CREATE PROCEDURE AUthorContract
@user varchar(10)
AS
IF(@user NOT IN(select Au_id from Authors))
BEGIn
RETURN -900
END
ELSE
BEGIN
select contract from from Authors where Au_id = @user
END
RETURN 0
GO
是错字错误。 – Sayamima