- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 回顾 用约束来强制数据完整性 主键约束 外键约束——关系图,级联更新,级联删除。 唯一约束 检查约束 默认约束 非空约束 数据库原理与应用 第12讲 存储过程与自定函数 * * 提纲 重点 对存储过程优点的理解 带参数的存储过程与不带参数的存储过程 自定函数 难点 存储过程的输入参数、输出参数和状态值 自定义函数:标量值函数,内联值函数,多语句表值函数 1. 存储过程 关键词:存储过程基本概念,预定义,被存储, * * (1) 存储过程的概念 是一组预编译好的、存储在服务器上的、能完成特定功能的Transact-SQL语句集合,是数据库的一种对象。,它可以接受参数、返回状态值和参数值,并且可以嵌套调用。 (2) 存储过程的优点 例: sp_helpindex 表名称 存储过程 ,经编译后存放在数据库服务器端,供客户端调用,因此存储过程可以充分利用服务器的高性能运算能力,而无须把大量的结果集传送到客户处理,减少网络传输开销。 (1)模块化编程。 (2)快速执行。 (3)减少网络通信量。 (4)提供安全机制。 (5)保证操作一致性。 * * (3) SQL Server存储过程的类型: 系统存储过程 由系统提供的存储过程,主要存储在master数据库中并以sp_为前缀 如: sp_renamedb NewSales,sales sp_helpdb 数据库名‘--查看数据库列表 用户定义存储过程-----(重点) 由用户创建并能完成某一特定功能(例如查询用户所需数据信息)的存储过程。它处于用户创建的数据库中 扩展存储过程。 扩展存储过程是SQL Server环境之外执行 动态链接库(DLL)来实现的,通常前缀是xp_ 。当扩展存储过程加载到SQL Server中,它的使用方法与系统存储过程一样。扩展存储过程只能添加到master数据库中。 2. 存储过程创建与执行示例 关键词:PROC,@,OUTPUT * * (4) 存储过程的创建、修改、删除与执行 创建 CREATE PROC 存储过程名 参数表 [With {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}] AS SQL STATEMENT 其中:RECOMPILE---执行时重新编译,ENCRPTION---对存储过程脚本加密。 执行 EXECUTE 存储过程名 参数表 修改存储过程 ALTER PROC 存储过程名 删除存储过程 DROP PROC 存储过程名 * * (1)示例数据库 Teach数据库包含三个表,表结构如下: 例 * * 10.2 存储过程的创建与使用 (1) 无参数的存储过程。 (2)带参数的存储过程 存储过程和调用者之间通过参数交换数据,参数可分为:输入参数(input)和输出参数(output)。一个存储过程可以有多个参数,用“,”分隔。 输入参数的定义格式:@参数名 类型 输出参数的定义格式:@参数名 类型 output 执行 对输入参数,在EXEC语句中用常量传值 对输出参数,先要定义一个存储结果的参数,在EXEC语句中用OUTPUT显式声明它为输出项。 * * 课堂练习: 写存储过程proc_AddCourse,用于向课程表增加新行( ‘NN0006’, ‘智能数据分析’, 4 )(用参数表示数据值,参数变量自己定义) 写存储过程Proc_ModifyCourse,用于修改一个给定了课程号为‘NN0001’的课程的课程名由‘计算机网络’改为 ‘计算机通信系统’,学分由4改为6。 课程号 课程名 学分 课程表 写存储过程proc_AddCourse,用于向课程表增加新行(用参数表示数据值)
写存储过程Proc_ModifyCourse,用于修改一个给定了课程号的课程的课程名和学分。
CREATE PROCEDURE proc_AddCourse
@cid char(6),
@cname char(10),
@core int
AS
INSERT INTO 课程表(课程号,课程名,学分)
VALUES( @cid, @cname, @core)
--select * from 学生表
--select * from 成绩表
select * from 课程表
执行:
EXEC proc_AddCourse NN0006, 智能数据分析, 4
=============================
CREATE PROCEDURE Proc_ModifyCourse
@Cid char(6),
@cname char(10),
@core int
AS
UPDATE 课程表
SET 课程名=@cname,学分=@core
WHERE 课程号=@cid
--
您可能关注的文档
最近下载
- 压力检测及仪表.ppt
- DGTJ08-202-2020钻孔灌注桩施工规程 上海市.pptx VIP
- 光伏发电站场内及并网安全技术白皮书.pdf
- API SPEC 4F 钻井和修井井架、底座规范1995.doc VIP
- 2023年09月浙江温州市平阳县部分事业单位面向高校毕业生退役士兵公开招聘6人笔试历年难易错点考题荟萃附带答案详解_1.docx VIP
- 《中华人民共和国安全生产法》培训解读课件.pptx VIP
- 《中华人民共和国安全生产法》解读与培训.pptx VIP
- 电子商务专业课程体系构建与实践教学方案.docx VIP
- 《中华人民共和国矿山安全法实施条例》深度解读课件.pptx VIP
- 【温州】2024年浙江温州平阳县部分事业单位面向高校毕业生退役士兵招聘工作人员6人笔试历年典型考题及考点剖析附带答案详解.docx VIP
文档评论(0)