用SQL语句创建存储过程,并执行

本文详细介绍了如何在SQL中创建包含输出参数的存储过程,并通过实例展示了执行过程及输出参数的作用。

一.创建一个存储过程

里面有个输出参数output

create proc multi
@num1 int,
@num2 int=10 output     --output的功能类似于C#中的out修饰参数
as
set @num2=@num2*@num1
print @num2

二.执行存储过程

exec multi 5,5
这时输出:25

忽略了输出参数的默认值10


exec multi 5
这时输出:50

输出参数的默认值10起作用


### 创建 SQL 存储过程 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户可以通过指定存储过程的名字给定参数(如果该存储过程带有参数)来调用执行它[^2]。 #### MySQL创建存储过程 对于MySQL数据库而言,创建存储过程遵循如下语法: ```sql CREATE PROCEDURE 存储过程名 ([[IN|OUT|INOUT]] 参数名 数据类型) BEGIN -- 过程体每条SQL语句用';'隔开 END; ``` 具体例子展示了一个名为`adduser`的过程,此过程接收一个双精度浮点数作为输入,更新表中的金钱字段: ```sql DROP PROCEDURE IF EXISTS adduser; CREATE PROCEDURE adduser(IN num DOUBLE) BEGIN UPDATE `user` SET money = money - num WHERE name = '张三'; UPDATE `user` SET money = money + num WHERE name = '李四'; END; ``` 上述代码先检查是否存在同名的存储过程,如果有则删除之;接着定义新的存储过程`adduser`,其接受一个名为`num`的输入参数,数据类型为DOUBLE。在这个过程中,当传入数值时会减少名为‘张三’用户的金额,相应增加名为‘李四’用户的金额。 #### SqlServer 中创建存储过程 针对SqlServer环境下的存储过程创建方式略有不同,通常形式如下所示: ```sql CREATE PROCEDURE SP_YX_USERS_SELECTBYUSERID @UserId NVARCHAR(50) AS BEGIN SELECT * FROM Users WHERE UserId = @UserId; END; ``` 这里展示了如何创建一个简单的查询型存储过程,在这个例子中,通过提供用户ID(`@UserId`)作为参数,可以从Users表中检索对应记录[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值