创建存储过程
存储过程的格式
--创建存储过程
--CREATE PROCEDURE 存储过程名
CREATE PROC 存储过程名
@参数1 数据类型 = 默认值 OUTPUT,
@参数n 数据类型 = 默认值 OUTPUT
AS
BEGIN
--实现功能的SQL语句
END
注释:
参数:1)参数可选 2)参数分为输入参数、输出参数
3)输入参数允许有默认值
1) ROC 是 PROCEDURE 的简写方式(常用)
2)数据类型 = 默认值
如果定义时就设定默认值
执行时参数可以不赋值,反之必须赋值
3)参数后面带有 OUTPUT,表示该参数可以被返回
示例1:创建打印输出两个参数之和的存储过程(不带默认值)
--示例1:打印输出两个参数之和
--创建存储过程(School数据库中)
--注意当前的数据库名称
CREATE PROC usp_sum
--usp表示用户自定义的 sum 表示此存储过程的功能(有意义的名称)
--定义参数
@num1 INT,
@num2 INT
AS
BEGIN
PRINT'@num1+@num2的和为'+CONVERT(VARCHAR(5),@num1+@num2)
END
--执行存储过程,为参数赋值
--赋值方式1 按定义的参数顺序依次赋值
EXECUTE usp_sum 3,3
--赋值方式2 指定参数名称赋值
EXECUTE usp_sum @num2=6,@num1=6
如果参数没有默认值,必须为参数赋值
如果第一个参数使用赋值方式2
之后的参数赋值必须使用相同的赋值方式
示例2:创建求带有默认值的两个参数之和的存储过程
--示例2:求带有默认值的两个参数之和
CREATE PROC usp_sum1
@num1 INT=1,
@num2 INT=2
AS
BEGIN
PRINT'@num1+@num2的和为'+CONVERT(VARCHAR(5),@num1+@num2)
END
--赋值方式1 按定义的参数顺序依次赋值
EXEC usp_sum1 3
--3 默认为第一个参数赋值,第二个参数使用默认值 2
--赋值方式2 指定参数名称赋值
EXEC usp_sum1 @num2=6 --@num1使用默认值 1
如果有默认值,为参数赋值就使用所赋的值,反之使用默认值
示例3:创建带有返回值的两个参数之和的存储过程
--示例3:带有返回值的两个参数之和
CREATE PROC usp_sum2
@num1 INT=1,
@num2 INT=2,
@result INT OUTPUT --输出参数
AS
BEGIN
--为输出参数 @result 赋值
SET @result=@num1+@num2
PRINT'@num1+@num2的和为'+CONVERT(VARCHAR(5),@result)
END
--执行带有输出参数的存储过程
--定义一个参数
DECLARE @res INT
EXEC usp_sum2 8,8,@res OUTPUT
PRINT '@res的结果为:'+CONVERT(VARCHAR(5),@res)
修改.删除存储过程
--修改存储过程(修改具体的SQL语句)
--第一个参数默认值设定为 10
--第二个参数没有默认值
ALTER PROC usp_sum2
@num1 INT=10,
@num2 INT,
@result INT OUTPUT --输出参数
AS
BEGIN
--为输出参数 @result 赋值
SET @result=@num1+@num2
PRINT'@num1+@num2的和为'+CONVERT(VARCHAR(5),@result)
END
--执行存储过程
DECLARE @r INT
EXEC usp_sum2 @num2=20,@result=@r OUTPUT
PRINT @r
--删除指定名称的存储过程
--切换至存储过程保存的位置
--确保要删除的存储过程在当前数据库中
use School
--执行删除操作
drop proc usp_sum