SQL SERVER 之存储过程(创建、修改、删除、执行)

我就不写一堆原理,书上基本原理肯定是有的。直接用代码,简单粗暴。

创建、修改存储过程格式:

CREATE / ALTER PROCEDURE procedure_name
	@parameter data_type,--输入参数
	@parameter data_type OUTPUT  --输出参数
AS 
Begin
	SQL 语句
End

例如:

/*创建存储过程*/
create procedure GetStudentAvgAndCount
 @StuClass nvarchar(30),
 @StuSex nvarchar(10),
 @StuCount int output
 as
 begin
	if(@StuClass is not null and @StuClass <> '')
		begin
			select st.Sclass, sc.Scourse, avg(sc.Sscore) courseAvg from tb_student st,tb_score sc where st.Sclass = @StuClass and st.Sno = sc.Sno group by st.Sclass,sc.Scourse
			set @StuCount = (select count(*) from tb_student st where st.Sclass = @StuClass and st.Ssex = @StuSex)
		end
	else
		begin
			set @StuCount = 0
		end
end

删除存储过程格式:

DROP PROCEDURE procedure_name

例如:

DORP PROCEDURE GetStudentAvgAndCount

执行存储过程

/*执行存储过程*/
declare @StuMaleCount int
exec GetStudentAvgAndCount '一班','男', @StuMaleCount output
select @StuMaleCount StuMaleCount

运行结果

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验5.1 存储过程的建立与使用 一、实验目的 理解存储过程的概念、作用、建立和调用方法。 二、实验原理 使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程存储过程有不带参数的、有带输入参数的、有带输出参数(output)的,还可以有带返回值的。创建好的存储过程可以使用EXEC procedure_name语句执行。 实验5.2 触发器的建立与使用 一、实验目的 理解触发器的概念和作用;了解触发器的分类及触发条件;掌握触发器的定义及应用。 二、实验原理 1、 使用CREATE TRIGGER语句定义触发器,ALTER TRIGGER语句修改触发器,DROP TRIGGER语句删除触发器。 2、 触发器分AFTER/FOR和INSTEAD OF两种类型:AFTER/FOR类型的触发器是在相应的触发语句(insert、delete、update)执行完后被触发的。如果触发语句对应的表上有完整性约束,这些完整性约束必须不违背时,相应的触发语句才能执行,然后才能触发对应的AFTER/FOR类型的触发器。INSTEAD OF类型的触发器会在触发语句(insert、delete、update)执行之前被触发,并取代相应的触发语句。 3、 在表或视图上,每个INSERT、UPDATE或DELETE语句只能创建一个INSTEAD OF类型的触发器,无法为有外键约束且指定为级联删除或级联修改的表创建DELETE或UPDATE语句上的INSTEAD OF 类型的触发器。 SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。当执行INSERT时,INSERTED表中保存要向表中插入的所有行;当执行DELETE时,DELETED表中保存要从表中删除的所有行;当执行UPDATE时,修改前的行保存在DELETED表中,修改后的行保存在INSERTED行中。
SQL Server中,创建存储过程的基本语法模板如下: ```sql if (exists (select * from sys.objects where name = 'pro_name')) drop proc pro_name go create proc pro_name @param_name param_type [=default_value] as begin sql语句 end ``` 其中,`pro_name`是你要创建存储过程的名称,`@param_name`是存储过程的参数名称,`param_type`是参数的数据类型,``是可选的参数默认值,`sql语句`是存储过程执行SQL语句。 请注意,在创建存储过程之前,先使用`if exists`语句判断是否存在同名的存储过程,如果存在,则使用`drop proc`语句删除已存在的存储过程。 以上是创建存储过程的基本语法模板,你可以根据实际需求进行相应的修改和完善。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SQL Server 创建存储过程](https://blog.csdn.net/u010583940/article/details/115080987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [存储过程创建及使用(sqlserver 2005)](https://blog.csdn.net/weixin_34075551/article/details/86146784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值