第8章 存储过程的应用

合集下载

2021年国开电大《数据库应用技术》形考任务二答案

2021年国开电大《数据库应用技术》形考任务二答案

2021年国开电大《数据库应用技术》形考任务二答案形考任务2第6章数据库其他对象管理关于视图的说法,正确的是()。

正确答案是:对视图的操作最终都转换为对基本表的操作在视图的定义语句中,只能包含()。

正确答案是:数据查询语句视图对应数据库三级模式中的()。

正确答案是:外模式关于视图的说法,正确的是()。

正确答案是:视图提供了数据的逻辑独立性创建视图的主要作用是()。

正确答案是:提供用户视角的数据设有学生表(学号,姓名,所在系)。

建立统计每个系的学生人数的视图语句中,正确的是()。

正确答案是:CREATE VIEW v1(系名,人数) AS SELECT 所在系, COUNT(*) FROM 学生表GROUP BY 所在系关于索引的说法,正确的是()。

正确答案是:在一个表上可以建立多个唯一的非聚集索引创建存储过程的用处主要是()。

正确答案是:提高数据操作效率关于存储过程的说法,正确的是()。

正确答案是:在定义存储过程的代码中可以包含数据的增、删、改、查语句修改存储过程P1的语句,正确的是()。

正确答案是:ALTER PROC P1删除存储过程P1的语句,正确的是()。

正确答案是:DROP PROC P1触发器的主要作用是()。

正确答案是:实现复杂的约束现有学生表和修课表,其结构为:学生表(学号,姓名,入学日期,毕业日期)修课表(学号,课程号,考试日期,成绩)现要求修课表中的考试日期必须在学生表中相应学生的入学日期和毕业日期之间。

正确的实现方法是()。

正确答案是:在修课表上建立一个插入和更新操作的触发器设在SC(Sno,Cno,Grade)表上定义了触发器:CREATETRIGGERtri1ONSCAFTERINSERT…当执行语句:INSERTINTOSCVALUES('s001','c01',90)会引发该触发器执行。

关于触发器执行时表中数据的说法,正确的是()。

正确答案是:SC表和INSERTED表中均包含新插入的数据当执行由UPDATE语句引发的触发器时,关于该触发器临时工作表的说法,正确的是()。

MySQL变量、函数、存储过程的使用

MySQL变量、函数、存储过程的使用

MySQL变量、函数、存储过程的使⽤MySQL语句:1.2.3.4.⼀、变量在mysql⽂档中,mysql变量可分为两⼤类,即系统变量和⽤户变量。

但根据实际应⽤⼜被细化为四种类型,即、、和。

1、局部变量mysql局部变量,只能⽤在begin/end语句块中,⽐如存储过程中的begin/end语句块。

其作⽤域仅限于该语句块。

-- declare语句专门⽤于定义局部变量,可以使⽤default来说明默认值-- DECLARE 变量名 [,variable_name...] 数据类型 [DEFAULT value];declare age int default0;-- 局部变量的赋值⽅式⼀-- SET 变量名 = 表达式值 [,variable_name = expression ...]set age=18;-- 局部变量的赋值⽅式⼆select StuAgeinto agefrom demo.studentwhere StuNo='A001';2、⽤户变量mysql⽤户变量,mysql中⽤户变量不⽤提前申明,在⽤的时候直接⽤“@变量名”使⽤就可以了。

其作⽤域为当前连接。

1-- 第⼀种⽤法,使⽤set时可以⽤“=”或“:=”两种赋值符号赋值2set@age=19;34set@age:=20;56-- 第⼆种⽤法,使⽤select时必须⽤“:=”赋值符号赋值7select@age:=22;89select@age:=StuAge10from demo.student11where StuNo='A001';3、会话变量mysql会话变量,服务器为每个连接的客户端维护⼀系列会话变量。

其作⽤域仅限于当前连接,即每个连接中的会话变量是独⽴的。

1-- 显⽰所有的会话变量2 show session variables;34-- 设置会话变量的值的三种⽅式5set session auto_increment_increment=1;6set@@session.auto_increment_increment=2;7set auto_increment_increment=3; -- 当省略session关键字时,默认缺省为session,即设置会话变量的值89-- 查询会话变量的值的三种⽅式10select@@auto_increment_increment;11select@@session.auto_increment_increment;12 show session variables like'%auto_increment_increment%'; -- session关键字可省略1314-- 关键字session也可⽤关键字local替代15set@@local.auto_increment_increment=1;16select@@local.auto_increment_increment;4、全局变量mysql全局变量,全局变量影响服务器整体操作,当服务启动时,它将所有全局变量初始化为默认值。

SQL Server 2005数据库原理及应用教程第8章 存储过程和触发器

SQL Server 2005数据库原理及应用教程第8章 存储过程和触发器

2.相关注意事项 ①不能将 CREATE PROCEDURE语句与其他 SQL 语句组合 PROCEDURE语句与其他 到单个批处理中。 ②创建存储过程的权限默认属于数据库所有者,该所有者可将 此权限授予其他用户。 ③存储过程是数据库对象,名称必须遵守标识符规则。 ④只能在当前数据库中创建存储过程。 ⑤一个存储过程的最大尺寸为128M。 ⑤一个存储过程的最大尺寸为128M。 ⑥可以在存储过程内引用临时表。 ⑦如果执行的存储过程调用另一个存储过程,则被调的存储过 程可以访问由第一个存储过程创建的包括临时表在内的所有 对象。 ⑧存储过程中参数的最大数量为2100。 ⑧存储过程中参数的最大数量为2100。 ⑨不要以sp_为前缀创建任何存储过程。 ⑨不要以sp_为前缀创建任何存储过程。
1.语法格式 创建存储过程的语法格式: CREATE PROC[EDURE] procedure_name[;number] [{@parameterdata_type} [VARYING][=default][OUTPUT] ][,...n] WITH AS sql_statement [ ...n ] ①procedure_name:用于指定要创建的存储过程的名称。 procedure_name:用于指定要创建的存储过程的名称。 ②number:该参数是可选的整数,它用来对同名的存储过程分组,以便用 number:该参数是可选的整数,它用来对同名的存储过程分组,以便用 一条 DROP PROCEDURE 语句即可将同组的过程一起除去。 ③@parameter:过程中的参数,在 CREATE PROCEDURE 语句中可以 @parameter:过程中的参数,在 声明一个或多个参数。 ④data_type:用于指定参数的数据类型。 data_type:用于指定参数的数据类型。 ⑤VARYING:用于指定作为输出OUTPUT参数支持的结果集。 VARYING:用于指定作为输出OUTPUT参数支持的结果集。 ⑥DEFAULT:用于指定参数的默认值。 DEFAULT:用于指定参数的默认值。 ⑦OUTPUT:表明该参数是一个返回参数。 OUTPUT:表明该参数是一个返回参数。 ⑧AS:用于指定该存储过程要执行的操作。 AS:用于指定该存储过程要执行的操作。 ⑨sql_statement:是存储过程中要包含的任意数目和类型的 Transactsql_statement:是存储过程中要包含的任意数目和类型的 TransactSQL 语句。

电大数据库系统与应用,形考册第6章,习题与参考答案

电大数据库系统与应用,形考册第6章,习题与参考答案

第6章习题与参考答案一.单项选择题1.下列关于视图的说法,正确的是(B)。

A.视图与基本表一样,也存储数据B.对视图的操作最终都转换为对基本表的操作C.视图的数据源只能是基本表D.所有视图都可以实现对数据的增、删、改、查操作2.在视图的定义语句中,只能包含(A)。

A.数据查询语句B.数据增、删、改语句C.创建表的语句D.全部都可以3.视图对应数据库三级模式中的(A)。

A.外模式B.内模式C.模式D.其他4.下列关于视图的说法,正确的是(B)。

A.通过视图可以提高数据查询效率B.视图提供了数据的逻辑独立性C.视图只能建立在基本表上D.定义视图的语句可以包含数据更改语句5.创建视图的主要作用是(D)。

A.提高数据查询效率B.维护数据的完整性约束C.维护数据的一致性D.提供用户视角的数据6.设有学生表(学号,姓名,所在系)。

下列建立统计每个系的学生人数的视图语句中,正确的是(D)。

A.CREATE VIEW v1ASSELECT 所在系, COUNT(*) FROM 学生表GROUP BY 所在系B.CREATE VIEW v1ASSELECT 所在系, SUM(*) FROM 学生表GROUP BY 所在系C.CREATE VIEW v1(系名,人数) ASSELECT 所在系, SUM(*) FROM 学生表GROUP BY 所在系D.CREATE VIEW v1(系名,人数) ASSELECT 所在系, COUNT(*) FROM 学生表GROUP BY 所在系7.设用户在某数据库中经常需要进行如下查询操作:SELECT * FROM T WHERE C1='A' ORDER BY C2设T表中已在C1列上建立了主键约束,且该表只建有该约束。

为提高该查询的执行效率,下列方法中可行的是(C)。

A.在C1列上建立一个聚集索引,在C2列上建立一个非聚集索引B.在C1和C2列上分别建立一个非聚集索引C.在C2列上建立一个非聚集索引D.在C1和C2列上建立一个组合的非聚集索引8.下列关于索引的说法,正确的是(C)。

电大数据库系统与应用,形考册第6章,习题与参考答案

电大数据库系统与应用,形考册第6章,习题与参考答案

第6章习题与参考答案一.单项选择题1.下列关于视图的说法,正确的是〔B。

A.视图与基本表一样,也存储数据B.对视图的操作最终都转换为对基本表的操作C.视图的数据源只能是基本表D.所有视图都可以实现对数据的增、删、改、查操作2.在视图的定义语句中,只能包含〔A。

A.数据查询语句B.数据增、删、改语句C.创建表的语句D.全部都可以3.视图对应数据库三级模式中的〔A。

A.外模式B.内模式C.模式D.其他4.下列关于视图的说法,正确的是〔B。

A.通过视图可以提高数据查询效率B.视图提供了数据的逻辑独立性C.视图只能建立在基本表上D.定义视图的语句可以包含数据更改语句5.创建视图的主要作用是〔D。

A.提高数据查询效率B.维护数据的完整性约束C.维护数据的一致性D.提供用户视角的数据6.设有学生表〔学号,姓名,所在系。

下列建立统计每个系的学生人数的视图语句中,正确的是〔D。

A.CREATE VIEW v1ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系B.CREATE VIEW v1ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系C.CREATE VIEW v1<系名,人数> ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系D.CREATE VIEW v1<系名,人数> ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系7.设用户在某数据库中经常需要进行如下查询操作:SELECT * FROM T WHERE C1='A' ORDER BY C2设T表中已在C1列上建立了主键约束,且该表只建有该约束。

为提高该查询的执行效率,下列方法中可行的是〔C。

A.在C1列上建立一个聚集索引,在C2列上建立一个非聚集索引B.在C1和C2列上分别建立一个非聚集索引C.在C2列上建立一个非聚集索引D.在C1和C2列上建立一个组合的非聚集索引8.下列关于索引的说法,正确的是〔C。

MySQL数据库技术与应用(慕课版)课后习题答案

MySQL数据库技术与应用(慕课版)课后习题答案

第1章数据库概述1.填空题(1)Oracle(2)U 1U 2U 4U(3)体积小、安装成本低、速度快、源码开放(4)Memcached、Redis、mongoDB(5)大、中、小型网站中2.选择题(1)A(2)B(3)A(4)A(5)D3.简答题(1)常见的关系型数据库有MySQL、Oracle、SQL Server和Access数据库。

MySQL数据库主要应用在广泛地应用到互联网上的大、中、小型网站中;Oracle数据库主要应用在传统大企业、政府机构、金融机构、证券机构等;SQL Server数据库主要应用在部分电商和使用Windows 服务器平台的企业;Access数据库早期应用于小型程序系统ASP + Access、系统留言板、校友录等。

(2)关系型数据库按照结构化的方法存储数据,具备纵向扩展能力,采用结构化查询语言,强调ACID规则,强调数据的强一致性,可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以回滚事务。

非关系型数据库不需要固定的表结构,一般情况下也不存在对数据的连续操作。

不同点:关系型数据库使用表结构,非关系型的数据库格式灵活。

关系型数据库支持SQL语言,支持事务,非关系型数据库不提供SQL语言,无事务处理。

相对于关系型数据库,非关系型数据库在大数据存取上具备无法比拟的性能优势。

(3)应该注意MySQL的版本和开发人员使用的版本。

第2章环境的安装与基本配置1.填空题(1)Ubuntu CentOS Red Hat(2)RPM包二进制包源码包(3)仅主机模式NAT模式桥接模式(4)数据库语言(5)Mysqladmin、mysqldump等命令2.选择题(1)A(2)B(3)B(4)D(5)D3.简答题(1)在企业中应该使用源码编译方式安装MySQL,使用源码安装在编译安装过程可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。

(2)VMware虚拟平台提供3种网络模式。

数据库应用技术阶段作业

数据库应用技术阶段作业第一阶段一、单项选择题(共20道小题,共100.0分)1.GRANT语句属于SQL的()语言。

A.数据定义语言(DDL)B.数据操作语言(DML)C.数据控制语言(DCL)知识点:第1章数据库与MySQL试题分值:5.0学生答案:[C;]得分:提示:[5]2.CREATE语句属于SQL的()语言。

A.数据定义语言(DDL)B.数据操作语言(DML)C.数据控制语言(DCL)知识点:第1章数据库与MySQL试题分值:5.0学生答案:[A;]得分:提示:[5]3.INSERT(插入)语句属于SQL的()语言。

A.数据定义语言(DDL)B.数据操作语言(DML)C.数据控制语言(DCL)知识点:第1章数据库与MySQL试题分值:5.0学生答案:[B;]得分:提示:[5]4.SQL是高级的()编程语言。

A.非过程化B.过程化知识点:第1章数据库与MySQL试题分值:5.0学生答案:[A;]得分:提示:[5]5.“开放源码=什么都允许”,这种说法对吗?A.正确B.错误知识点:第1章数据库与MySQL试题分值:5.0学生答案:[B;]得分:提示:[5]6.()数据库保证对任意数据唯一的连接路径,能够以简洁的代码实现数据的读取。

A.网络型B.阶层型C.关系型D.面向对象型知识点:第1章数据库与MySQL试题分值:5.0学生答案:[B;]得分:提示:[5]7.()是终端用户与DBMS间的窗口。

A.数据库B.数据C.应用程序D.操作系统知识点:第1章数据库与MySQL试题分值:5.0学生答案:[C;]得分:提示:[5]8.CREATETABLE命令的选项很多,()用于禁止设置重复的值。

A.NULLB.NOTNULLC.UNIQUED.AUTO_INCREMENT知识点:第3章启动MySQL监视器(Monitor)试题分值:5.0学生答案:[C;]得分:提示:[5]9.修改MySQL用户root的密码的指令是()。

数据库原理及应用项目8存储过程的创建和使用

图 8.5 “修改存储过程”窗口
任务8.3 知识与技能扩展
8.3.1 修改存储过程
2.使用ALTER PROCEDURE命令修改存储过程
使用SQL Server Management Studio修改存储过程的步骤如下。 T-SQL语句修改存储过程是使用ALTER PROCEDURE命令,其语法代 码如下所述。
任务8.3 知识与技能扩展
8.3.1 修改存储过程
1.使用SQL Server Management Studio修改存储过程
使用SQL Server Management Studio修改存储过程的步骤如下。 (1) 启动SQL Server Management Studio,在“对象资源管理 器”中展开数据库节点,选择要修改存储过程的目标数据库 “BookBBSDB”并展开。 (2) 选择展开“可编程性”节点,右击“存储过程”,选择 “Proc1”,单击右键从弹出的快捷菜单中执行“修改”选项,打开“ 修改存储过程”窗口命令选项,如图8.5所示。 (3) 修改好存储过程,单击工具栏的执行按钮,完成对存储过 程的修改。
数据库原理与应用
讲授人
CONTENTS
项目1 数据库设计 项目2 搭建SQL Server 2008 数据库管理系统环境 项目3 创建和管理数据库
项目4 创建和管理数据表
项目5 表中数据操作 项目6 进行T-SQL程序设计 项目7 事务、索引和视图的创建 与应用 项目8 存储过程的创建和使用
项目9 触发器的创建和使用
8.2.2 使用常用系统存储过程
下面介绍常用的系统存储过程和扩展存储过程的用法。 【示例8-1】
任务8.2 “网络论坛”数据库数据管理
8.2.3 创建和调用用户自定义的存储过程

存储过程及应用

存储过程及应用存储过程是一组预定义的数据库操作集合,它被存储在数据库中,可以被多处调用和执行。

存储过程可以将多个SQL语句和业务逻辑组合在一个单一的单元中,从而提高数据库的性能和可维护性。

存储过程的应用范围非常广泛,以下是一些常见的应用场景:1. 数据库事务处理:存储过程可以用于处理数据库事务,将多个SQL操作打包在一起,保证了数据的一致性和完整性。

通过使用事务和存储过程,可以在多个数据库操作之间建立一致的执行顺序,并能够在出现错误时回滚到事务的起始状态。

2. 数据库日志记录和审计:存储过程可以用于记录和审计数据库操作,例如记录用户登录、数据修改、数据删除等操作,并可以定义相应的触发器,触发存储过程进行日志记录和审计。

3. 数据有效性验证:存储过程可以用于验证输入数据的有效性。

例如,可以编写存储过程来验证用户输入的用户名和密码是否正确,或者验证输入的数据是否符合特定的格式要求。

4. 数据转换和计算:存储过程可以用于进行复杂的数据转换和计算。

例如,可以编写存储过程来计算销售额、平均值、总和等聚合函数,或者进行数据格式转换、数据清洗等操作。

5. 复杂查询的封装和重用:存储过程可以用于封装复杂的查询逻辑,并可以在多个地方重用这些查询。

例如,可以编写存储过程来获取用户的购买记录、浏览记录等,然后在多个业务场景中重用这些查询逻辑。

6. 数据安全性控制:存储过程可以用于实现数据安全性控制。

例如,可以编写存储过程来限制用户对某些敏感数据的访问权限,只有经过认证的用户才能够执行这些存储过程。

7. 批量操作的优化:存储过程可以用于批量操作的优化。

例如,可以编写存储过程来处理大量的数据插入、更新和删除操作,减少与数据库的通信次数,提高数据操作的效率。

8. 数据库备份和还原:存储过程可以用于数据库的备份和还原操作。

例如,可以编写存储过程来执行数据库的全量备份、增量备份和还原操作,以保证数据的安全性和可恢复性。

总之,存储过程是数据库管理和开发中非常重要的工具,它可以提高数据库的性能、可维护性和安全性,适用于各种不同的业务场景和需求。

《数据库原理与应用》课程教学大纲

《数据库原理与应用》课程教学大纲一、课程基本信息(一)课程代码:(二)课程中文名称:数据库原理与应用(三)课程英文名称:Principle and Application of Database(四)课程性质:专业基础课程(五)适用专业:计算机科学与技术、软件工程、大数据与人工智能(六)开课单位:(七)教学时间安排:第 3学期(八)先修课程:计算机基础、高级语言程序设计(九)后续课程:网络程序开发、大数据技术原理及应用(十)学时、学分:32学时、2学分二、课程目标《数据库原理与应用》是计算机类各专业的必修课,是一门重要的专业基础课。

原理部分以数据库技术的实际应用为目标,重点讲述数据库的基础知识、基本原理和基本技术;应用部分以数据库应用开发为主,介绍数据库应用系统的设计方法、步骤和范例。

通过本课程学习,使学生在掌握数据库系统基本概念、原理的基础上,能熟练使用SQL语言在某一个具体的数据库管理系统上进行应用操作;掌握数据库原理、方法及步骤,具有数据库设计以及应用数据库管理系统的基本能力。

达成支撑专业学习成果相应的指标点。

课程目标对学生能力要求如下:课程目标1. 逐步掌握科学的学习方法,阅读并理解数据库相关教材、参考书和科技文献,不断地扩展知识面,增强独立思考的能力,更新知识结构。

课程目标2. 掌握关系代数语言的使用;能够熟练使用SQL语句进行数据操纵和数据定义。

课程目标3. 了解关系模型的基本概念;掌握关系数据库规范化理论,能够利用分解算法将关系模式进行合理的分解;掌握数据库设计方法和数据库系统维护的相关概念和应用。

课程目标4. 能够在MySQL平台环境和开发工具下使用SQL语句进行数据操纵和数据定义。

课程目标5. 具备良好的沟通、表达和团队协作能力。

三、教学内容与课程目标的关系第1章数据库系统的基本原理1.章节学时:1学时2.教学内容:(1)数据库系统概述(数据库系统概念;数据管理技术的产生和发展;数据库系统组成)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ቤተ መጻሕፍቲ ባይዱ
存储过程的概念
存储过程(Stored Procedure)是一组完成特定功能 的Transact-SQL语句集,经编译后存储在数据库中,用户 调用过程名和给出参数来调用它们
存储过程的特点
允许模块化程序设计 执行速度快 有效降低网络流量 提高数据库的安全性

存储过程的分类
系统存储过程 用户自定义存储过程 扩展存储过程
【例8.6】创建名为listEmployee的存储过程,其功能为:在员工表employee 中查找符合性别和超过指定工资条件的员工详细信息。 代码如下: CREATE PROCEDURE listEmployee @sex varchar(2), @salary money AS SELECT * FROM employee WHERE sex=@sex and salary>@salary 查找工资超过4000元的的男员工和工资超过3000元女员工的详细信息。 代码如下: EXEC listEmployee @sex='男',@salary=4000 EXEC listEmployee @salary=3500,@sex=' 女'

【例8.5】在销售管理数据库CompanySales中,创建一个名customer_order存 储过程,用于获取指定客户的信息,包括联系人姓名、联系方式以及该公司 订购产品的明细表。 代码如下: CREATE PROCEDURE customer_order @customername varchar(20) AS SELECT panyName 公司名称, C.contactName 联系人姓名, P.productName 商品名称, P.Price 单价, S.sellOrderNumber 数量, S.SellOrderDATE 订货日期 FROM customer AS C JOIN Sell_order AS S ON C.customerID = S.customerID JOIN product AS P ON S.productID = P.productID WHERE panyName = @customername

存储过程的分类 (续)

系统存储过程
存储过程的分类(续)

用户自定义存储过程
用户自定义存储过程是指封装的由用户创建,能完成某一 特定的功能的可重用代码的模块或例程。

扩展存储过程
扩展存储过程是指使用编程语言(例如 C)创建自己的外 部例程,是指 Microsoft SQL Server 的实例可以动态加载和 运行的 DLL。
SQL Server 2005数据库应用技术
清华大学出版社
【例8.2】创建一个名为Cu_tonghen_Order存储过程,用于查询“通恒机械有 限公司”的联系人姓名、联系方式、以及该公司订购产品的明细表。 代码如下: CREATE PROCEDURE Cu_tonghen_Order As SELECT panyName 公司名称, c.con, P.productName 商品名称, P.price 单价, S.sellOrderNumber 订购数量, S.sellOrderDate 订货日期 FROM customer AS C JOIN Sell_order AS S ON C.customerID = S.customerID JOIN product AS P ON P.productID = S.productID where panyName='通恒机械有限公司'
参数: @参数名称:存储过程可以没有参数。也可以声明一个或多个参数,参数名称 必须@作为第一个字符。参数后面带OUTPUT,表示为输出参数。 WITH ENCRYPTION:对存储过程加密,其他用户无法查看存储过程的定义。 WITH RECOMPILE:每次执行该存储过程都重新进行编译。 sql_statemen:该存储过程中定义的编程语句。
(2)sp_helptext用于显示存储过程的源代码。语法格式如 下。
sp_helptext [[@objname=]存储过程]
【例8.1】创建一个名为Cu_information的存储过程,用于 查询客户的信息。 代码如下: CREATE PROCEDURE Cu_information /* 定义过程名*/ AS SELECT * FROM customer /*过程体*/
创建存储过程需要考虑的因素:
(1)一个存储过程完成一个任务。 (2)不要使用sp_来命名用户存储过程。 (3) 可以使用WITH ENCRYPTION加密存储过程,以免存储 过程的源代码被人查阅。 (4)在存储过程的开始执行SET语句。 (5)在服务器上创建、测试存储过程。
【例8.3】执行【例8.2】中创建的Cu_tonghen_Order存储过 程。 代码如下: EXEC Cu_tonghen_Order
【例8.4】创建一个存储过程,实现根据订单号获取该订 单的信息的功能。 代码如下: Create PROCEDURE OrderDetail @OrderID INT AS SELECT * FROM Sell_Order WHERE SellOrderId=@OrderID
第8章 存储过程的应用
技能目标
理解存储过程的作用; 学会创建、删除、修改存储过程; 学会根据实际需要设计销售管理数据库中的存储过程。

知识目标
理解存储过程的作用; 了解系统存储过程和扩展存储过程; 掌握存储过程的基本类型; 掌握创建、删除、修改和加密存储过程; 掌握执行各类存储过程
不带参数的存储过程(续)

执行不带参数的存储过程
语法结构如下。 EXEC[UTE] 存储过程名 【例9】执行创建的Cu_tonghen_Order存储过程。 EXEC Cu_tonghen_Order
带输入参数的存储过程

创建带输入参数的存储过程
CREATE [ PROC | PROCEDURE] 存储过程名 [ { @参数名称 参数数据类型 } [ = 参数的默认值 ] [ ,...n ] [ WITH ENCRYPTION] [WITH RECOMPILE ] AS sql_statement 【例】创建一个存储过程,实现根据订单号获取该订单的信息 的功能。
删除用户存储过程
删除用户存储过程可以使用DROP命令。 语法格式如 下。
DROP {PROC | PROCEDURE } 存储过程名 [ ,...n ]
修改存储过程
ALTER PROCEDURE语句的语法格式如下。
ALTER [ PROC | PROCEDURE] 存储过程名 [ { @参数名称 参数数据类型 } [ = 参数的默认值 ] [ OUTPUT ] ] [ ,...n ] [ WITH ENCRYPTION] [WITH RECOMPILE ] AS sql_statement
存储过程的组成
存储过程的定义中包含如下的两个主要组成部分。
(1)过程名称及其参数的说明:包括所有的输入参数以及传给调用者 的输出参数。
(2)过程的主体:也称为过程体,针对数据库的操作语句 (Transact-SQL 语句),包括调用其它存储过程的语句。
不带参数的存储过程
1、创建不带参数的存储过程 语法格式 。
系统存储过程
常用系统存储过程: sp_tables:返回可在当前环境中查询的对象列表。这代表可在 FROM 子句 中出现的任何对象。 sp_stored_procedures :返回当前环境中的存储过程列表。 sp_rename:在当前数据库中更改用户创建对象的名称。此对象可以是表、 索引、列、别名数据类型。 sp_renamedb:更改数据库的名称。 sp_help:报告有关数据库对象(sys.sysobjects 兼容视图中列出的所有 对象)、用户定义数据类型或 SQL Server 2005 提供的数据类型的信息。 sp_helptext:示用户定义规则的定义、默认值、未加密的 Transact-SQL 存储过程、用户定义 Transact-SQL 函数、触发器、计算列、CHECK 约束、 视图或系统对象(如系统存储过程)。 sp_who:提供有关 Microsoft SQL Server Database Engine 实例中的当 前用户和进程的信息。 sp_password:为 Microsoft SQL Server 登录名添加或更改密码。
@参数名 数据类型[=默认值] OUTPUT
2、执行带输出参数的存储过程
语法如下。 EXEC[UTE] 存储过程名 [[@参数名=]{参数值 | @变量 [ OUTPUT ] | [默认值]}] [,...n]
查看存储过程
(1) sp_help用于显示存储过程的参数及其数据类型。语 法格式如下。
sp_help [[@objname=] 存储过程名 ]
CREATE [ PROC | PROCEDURE] 存储过程名 [ WITH ENCRYPTION] [WITH RECOMPILE ] AS sql_statement 【例】创建一个名为Cu_information的存储过程,用于查询客 户的信息。 【例】创建一个名为Cu_tonghen_Order存储过程,用于查询 “通恒机械有限公司”的联系人姓名、联系方式、以及该公司 订购产品的明细表。
存储过程语法格式
语法格式: CREATE [ PROC | PROCEDURE] 存储过程名 [ { @参数名称 参数数据类型 } [ = 参数的默认值 ] [ OUTPUT ] ] [ ,...n ] [ WITH ENCRYPTION] [WITH RECOMPILE ] AS sql_statement
带输入参数的存储过程 (续)
执行输入参数的存储过程两种方法: (1)使用参数名传递参数值
相关文档
最新文档