sqlserver执行基础存储过程(含输出参数)

sqlserver之基础存储过程

存储过程是数据库中,一组为了完成特定功能,预编译的SQL语句集

存储过程的优点

1.存储过程在服务器端调用,执行速度快。
2.存储过程执行一次后,会驻留在高速缓冲吨初期,提高了系统的性能。
3.使用存储过程可以完成所有数据库操作,并可通过科变成的方式控制对数据库信息访问的权限,确保数据库的安全。
4.自动完成需要预先执行的任务,存储过程可以在sqlserver启动时自动执行。

创建存储过程

在这里插入图片描述

存储过程类型

1.不含参数的存储过程
(重点变量先声明在使用,declare声明后记得添加数据类型)
变量声明在as前是参数(分为输入参数和输出参数output),在as之后为局部变量。

create PROCEDURE dbo.testp1
	
AS
BEGIN
	declare @a int;
	set @a=10;
	select @a;
END

执行语句:exec testp1 执行结果:10
2.带返回值的存储过程。

create PROCEDURE [dbo].[testp3]
AS
BEGIN
	declare @a int;
	set @a=3;
	return @a;
END

执行语句
declare @testp3 int;
exec @testp3=dbo.testp3;
select @testp3
结果:3
3.执行含有查询语句的存储过程

create PROCEDURE [dbo].[testp5]
AS
BEGIN
	
	select * from dbo.test01;
END 

执行语句:exec testp5
4.含参数的存储过程

create PROCEDURE [dbo].[testp6]
	@datetime1 date,
	@out_number int,
	@in_number int
AS
BEGIN
	insert into dbo.test01 values(@datetime1,@out_number,@in_number);
END

执行语句:exec testp6 ‘2021-5-1’,100,101;
5.带返回值(含参数)

create PROCEDURE [dbo].[testp7]
	@datetime1 date,
	@out_number int,
	@in_number int
AS
BEGIN
	if @datetime1 is not null
	 begin
	   insert into dbo.test01 values(@datetime1,@out_number,@in_number);
	   return 1;
	 end;
	else 
	   return -1;
END

执行语句:
declare @testp7 int;
exec dbo.testp7 ‘2021-5-2’,200,201;
select @testp7;
结果:1
6.带输出参数的存储过程

create PROCEDURE [dbo].[testp8]
	@out_number int,
	@in_number int,
	@datetime1 date output
AS
BEGIN
  if(@out_number is not null)
   begin
	declare @datet date;
	set @datet=GETDATE();
	insert into dbo.test01 values(@datet,@out_number,@in_number);
	set @datetime1=@datet;
  
   end;
  else 
	set @datetime1=null;
END

执行语句:
declare @datetime date;
exec dbo.testp8 300,301,@datetime output;
select @datetime;
结果:当前日期

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

南来山丘的乌鸦

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值