优秀的编程知识分享平台

网站首页 > 技术文章 正文

SQL - 在数据库中创建,调用,修改,删除存储过程 175

nanyue 2024-08-18 19:46:16 技术文章 12 ℃

#妙笔生花创作挑战#?

创建存储过程

存储过程的格式

--创建存储过程
--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

Tags:

最近发表
标签列表