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

本文详细介绍了SQL Server中的存储过程,包括其优点、不同类型及其创建与执行方法。从不含参数到带返回值、含参数的存储过程,再到带输出参数的实例,全方位展示了存储过程在数据库操作中的应用。通过存储过程,可以提高执行效率,控制权限,并实现自动化任务处理。
摘要由CSDN通过智能技术生成

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值