sqlserver存储过程

sqlserver存储过程

--存储过程
CREATE PROC testPROC
	@a INT, --输入参数按值传递
	--@a INT = 20, --可以给默认值
	@b INT OUTPUT --输出参数按引用传递
AS
	PRINT '传进来的a = ' + CAST(@a AS VARCHAR(10))
	PRINT '传进来的b = ' + CAST(@b AS VARCHAR(10))
SET @a = @a + 6
SET @b = @b + 6
	PRINT '修改后的a = ' + CAST(@a AS VARCHAR(10))
	PRINT '修改后的b = ' + CAST(@b AS VARCHAR(10))
GO
--调用存储过程
--调用存储过程的时候,使用EXECUTE关键字,可以简写成EXEC
DECLARE @c INT
DECLARE @d INT
SET @c = 10
SET @d = 10
EXECUTE testPROC @a=@c, @b=@d OUTPUT
PRINT @c
PRINT @d
GO
--调用存储过程
DECLARE @c INT
DECLARE @d INT
SET @c = 30
SET @d = 30
EXEC testPROC @b=@d OUTPUT --存储过程中有默认值的参数可以不传(所以我这里调用时只传了一个参数)
PRINT @c
PRINT @d
GO
--

--
SELECT * FROM bank
GO
--创建存储过程
CREATE PROC myTRANSFER
	@inId int,
	@outId int,
	@money float,
	@inIdMoney float OUTPUT,--输出参数
	@outIdMoney float OUTPUT --输出参数
AS
UPDATE bank SET currentMoney = currentMoney + @money WHERE cid = @inId
UPDATE bank SET currentMoney = currentMoney - @money WHERE cid = @outId
SELECT @inIdMoney = currentMoney FROM bank WHERE cid = @inId
SELECT @outIdMoney = currentMoney FROM bank WHERE cid = @outId
PRINT '转进后的金额=' + CAST(@inIdMoney AS VARCHAR(10))
PRINT '转出后的金额=' + CAST(@outIdMoney  AS VARCHAR(10))
GO

--调用存储过程
DECLARE @a FLOAT
DECLARE @b FLOAT
--调用存储过程的时候,使用EXECUTE关键字,可以简写成EXEC
EXEC myTRANSFER @inId=10,@outId=11,@money=100,@inIdMoney=@a OUTPUT,@outIdMoney=@b OUTPUT
PRINT '(调用存储过程-输出参数)转进后的金额=' + CAST(@a AS VARCHAR(10))
PRINT '(调用存储过程-输出参数)转出后的金额=' + CAST(@b AS VARCHAR(10))
GO

SELECT * FROM bank
GO

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值