📄 存储过程的实现.sql
字号:
CREATE PROCEDURE ReturnCodePro
@Sno char(10) = NULL, --设置参数的默认值
@Minage char(10)= NULL OUTPUT
AS
-- 判断@Sno参数
IF @Sno IS NULL--参数值为空则输出以下提示错误的语句
BEGIN
--错误: 您应该指定该学生的学号
RETURN(1)--返回整数值1
END
ELSE--若不为空
BEGIN
-- 确定输入的变量值是否正确
IF (SELECT COUNT(*) FROM [chapter5].[dbo].[Example5-1]
WHERE 学号 = @Sno) = 0
RETURN(2)--若不正确则返回2
END
SELECT * from [chapter5].[dbo].[Example5-1] WHERE 学号=@Sno;
-- 设置输出参数的值
SELECT @Minage= min(年龄)
FROM [chapter5].[dbo].[Example5-1]
--检查上面的SQL语句是否错误
IF @@ERROR <> 0
BEGIN
RETURN(3)--若错误则返回3
END
ELSE--若不错
BEGIN
-- 检查过程输出的值是否为空
IF @Minage =0
RETURN(4)--若为空则返回4
ELSE
-- 若不是则执行成功
RETURN(0)--成功则返回0
END
GO
--声明两个变量分别来接收存储过程输出的值和返回代码
DECLARE @minage char(10), @ret_code int;
--执行存储过程,指定输入参数的值,
--获得返回代码和输出参数的值
EXECUTE @ret_code = ReturnCodePro
N'002', @Minage = @minage OUTPUT;
-- 检查返回代码的值
IF @ret_code = 0
BEGIN
PRINT '存储过程运行成功!'
--显示过程输出的值
PRINT '表中最小年龄为'+RTRIM(@minage)+'.'
END
ELSE IF @ret_code = 1
PRINT '错误: 您应该指定该学生的学号。'
ELSE IF @ret_code = 2
PRINT '错吴:请输入正确的学号。'
ELSE IF @ret_code = 3
PRINT '错误:获得表中学生的最小年龄时出错。'
ELSE IF @ret_code = 4
PRINT '错误:得到的学生的最小年龄为0。'
GO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -