博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(十八)—— 存储过程
阅读量:5141 次
发布时间:2019-06-13

本文共 2071 字,大约阅读时间需要 6 分钟。

存储过程

  1. 系统存储过程

  2. 自定义存储过程

  3. 扩展存储过程

一、创建存储过程

  1. 创建存储过程

--例1USE SUGOCreate Procedure SelProcASSelect * From SCGO--例2USE SUGOCreate Procedure CountProcASSelect Count(*) AS 总数 From CourseGo

 2. 存储过程调用

USE SUGOExec SelProcExec CountProc

 3. 创建带输入参数的存储过程

--例1 创建 带输入参数 的存储过程USE SUGOCreate Procedure QueryById @Sno varchar(10)ASSelect *from SCWhere Sno = @SnoGO--执行GOExecute QueryById '1513032087'Execute QueryById @Sno = '1513032087'--创建 带默认参数 的存储过程USE SUGOcreate Procedure QueryById2 @Sno varchar(10) = '1513032087'ASSelect *From SCwhere Sno = @SnoGO--执行(可以不带参数, 因为有默认参数)EXecute QueryById2

4. 创建带输出参数的存储过程(执行时候,需要声明!!!!!!)

--例4Use SUGOCreate Procedure QueryById3 @Sno varchar(10) = '1513032087',@Cnocount INT OUTPUT   --输出参数,Sno学号选的课程数ASSelect @Cnocount = Count(SC.Cno)From SC, Studentwhere SC.Sno = Student.Sno and SC.Sno = @SnoGO--执行--必须先声明!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Declare @Sno varchar(10) = '1513032087';Declare @Cnocount int;                     --声明之后再执行EXEC QueryById3 @Sno, @Cnocount OUTPUTSelect '学号为' + @Sno + '选了' + Ltrim(STR(@Cnocount)) + '门课'  --字符串还需要处理一下GO

 

二、管理存储过程

1. 修改存储过程

------------管理存储过程--------------------修改存储过程exec CountProc   --查询GOAlter Procedure CountProcASselect Sno, COUNT(*) AS 总数From SCGroup By Sno--查看属性GOselect OBJECT_DEFINITION(OBJECT_ID('QueryById'));  --select OBJECT_DEFINITION(OBJECT_ID('存储过程名'));Exec sp_help QueryById      Exec sp_helptext QueryById--删除操作GODROP procedure 存储过程

 

三、扩展存储过程

可以将参赛传递过扩展存储过程,扩展存储过程也可以返回结果和状态

--查看系统版本信息EXEC xp_msver

四、自定义函数(允许模块化程序设计)

1. 创建标量函数

--创建一个标量函数,指定学生id值,返回该学生姓名GOCreate Procedure Snotosname @Sno varchar(10) = '1513032087'ASBeginDeclare @Sname varchar(40)Select @Sname = (                Select Sname                 From Student                where Sno = @Sno)RETURN @SnameEnd

2. 创建表值函数

--例1GOCreate Function getStuRecordBySex(@Ssex char(4))Returns TableReturn(    select Sno, Sname, Ssex, (Sage + 2) as newAge    From Student    where Ssex = @Ssex)--执行这个函数--执行函数Select *From getStuRecordBySex('男')

3. 删除函数

--删除函数Drop Function getStuRecordBySex

 

转载于:https://www.cnblogs.com/douzujun/p/6721083.html

你可能感兴趣的文章
用CAShapeLayer实现一个简单的饼状图(PieView)
查看>>
LA 3644 易爆物
查看>>
uboot 信息解读
查看>>
越是忙的时候,兴趣越多
查看>>
信步漫谈之Eclipse—插件安装
查看>>
字符串和字符数组的输入输出种类对比
查看>>
Python爬虫:抓取手机APP的数据
查看>>
手指滑动屏幕原理
查看>>
对于javascript里面闭包的理解
查看>>
LANMP安装总结
查看>>
因为没有打开的文档,所以这一命令无效==操作word问题
查看>>
C++获取Windows7 32位系统中所有进程名(类似于任务管理器中的进程)
查看>>
团队作业8----第二次项目冲刺(Beta阶段) 第三天
查看>>
用mrpt库时遇到的一个坑
查看>>
【19】235. Lowest Common Ancestor of a Binary Search Tree
查看>>
关闭vs的编译警告
查看>>
opencv载入,显示及保存图像
查看>>
C++回调机制实现(转)
查看>>
iOS基础篇 - UIWindow的简单介绍
查看>>
处理重复导入的方法之一
查看>>