SQL Server存储过程实例

SQL Server存储过程实例SQL 存储过程实例存储过程是由过程化 SQL 语句书写的过程 这个过程经编译和优化后存储在数据库服务器中 类似于函数 使用时只需调用即可 使用存储过程有以下优点 1 实现了 SQL 语句的可复用性 2 存储过程降低了客户机和服务器之间的通信量 3 方便实施企业规划存储过程的创建一般格式 GOCREATEPROC name 参数表 ASSQL 语句

SQL 存储过程实例

存储过程是由过程化SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中。类似于函数,使用时只需调用即可。

使用存储过程有以下优点:

1、实现了SQL语句的可复用性

2、存储过程降低了客户机和服务器之间的通信量

3、方便实施企业规划

存储过程的创建一般格式

GO

CREATE PROC proc_name(参数表)

AS

SQL语句

GO

这里使用之前创建好的学生数据库,在该数据库的表上创建存储过程



①创建一个带输入参数的存储过程proc_student,其中的输入参数用于接收课程号,默认值为“C601”,
然后在SC表中查询该课成绩不及格的学生学号,

 接着在student表中查找这些学生的基本信息,包括学号、姓名、性别和所在系信息,最后输出。
 





USE STUDENT IF OBJECT_ID ('proc_student','P') IS NOT NULL /*如果存在该存储过程,则删除之*/ DROP PROCEDURE proc_student; GO /*存储过程必须从批处理的第一条开始*/ CREATE PROC proc_student(@cno char(4)) AS BEGIN SET NOCOUNT ON; /*阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息*/ SELECT * FROM Student WHERE Sno IN ( SELECT sno FROM SC WHERE Cno=@cno AND Grade<60 ) END GO EXEC proc_student'C601' /*执行该存储过程*/ 









②创建一个为student表添加学生记录的存储过程Proc_AddStudent。

IF OBJECT_ID ('Proc_AddStudent','P') IS NOT NULL DROP PROCEDURE Proc_AddStudent; GO CREATE PROC Proc_AddStudent(@Sno char(4),@SName nvarchar(10),@Sex char(2),@Age int,@SNative varchar(20),@Department varchar(10),@SAddress varchar(20)) AS INSERT INTO Student VALUES(@Sno,@SName,@Sex,@Age,@SNative,@Department,@SAddress) GO EXEC Proc_AddStudent '1802','张华','男',22,'上海','数计系',NULL; SELECT *FROM Student

IF OBJECT_ID('Proc_DelStudent','P') IS NOT NULL DROP PROCEDURE Proc_DelStudent; SELECT *FROM Student WHERE Sno='1802' GO CREATE PROC Proc_DelStudent(@Sno char(4)) AS DELETE FROM Student WHERE Sno=@Sno GO EXEC Proc_DelStudent '1802' --执行删除学号为1802的学生 事务 SELECT *FROM Student WHERE Sno='1802'

在查询命令的窗口中输入DROP PROCEDURE语句,删除存储过程。






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224074.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:45
下一篇 2026年3月17日 下午12:45


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号