- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:create proc pr_count (@sdept varchar(8), @num int output) as select @num=count(*) from student where sdept=@sdept declare @peop int exec pr_count @sdept=CS,@num=@peop output select @peop 2)利用Return语句返回执行状态 在存储过程中可以使用Return语句向调用程序返回一个整数(称为返回代码),指示存储过程的执行状态。 create proc pr_count2 (@sdept varchar(8)=, @num int output) as if @sdept= begin print请输入系名! return 1 end select @num=count(*) from student where sdept=@sdept if @num=0 begin print系名错误! return 2 end return 0 * SQL Server 数据库程序设计 授课教师:姜 姗 存储过程和触发器 掌握存储过程的定义方法 掌握执行存储过程的方法 理解触发器的概念 掌握利用触发器实现数据完整性的方法 12.1 存储过程 12.1.1 存储过程概述 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数) 来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是利用SQL Server所提供的Transact-SQL语言所编写的程序。存储过程的运用范围比较广,可以包含几乎所有的T-SQL语句,例如数据库存取语句、流程控制语句、错误处理语句等,使用起来十分有弹性。 存储过程在第一次执行时进行编译,然后将编译好的代码保存在高速缓存中供以后调用,以提高代码的执行效率。 存储过程已在服务器注册而且在运行时不需要再对存储过程进行编译,执行速度快、效率高。 存储过程具有安全特性(例如权限)和所有权链接,以及可以附加到它们的证书。用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。 存储过程可以强制应用程序的安全性。参数化存储过程有助于保护应用程序不受 SQL Injection(SQL 注入)攻击。 存储过程允许模块化程序设计。存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护性,并允许应用程序统一访问数据库。 存储过程可以减少网络通信流量。一个需要数百行 Transact-SQL 代码的操作可以通过一条执行过程代码的语句来执行,而不需要在网络中发送数百行代码。 使用存储过程有如下好处: 1. 用户定义的存储过程 用户定义的Transact-SQL存储过程中包含一组Transact-SQL 语句集合,可以接受和返回用户提供的参数。 2. 扩展存储过程 扩展存储过程是指 Microsoft SQL Server 的实例可以动态加载和运行的 DLL,是由用户使用编程语言(例如C)创建的自己的外部例程,扩展存储过程一般使用sp_或xp_前缀。 3. 系统存储过程 由系统提供的存储过程,可以作为命令执行各种操作。系统存储过程定义在系统数据库master中,其前缀是sp_,例如常用的显示系统信息的sp_help存储过程。 存储过程的分类 12.1.2 创建存储过程 1. 利用Create Procedure语句创建 Create Procedure语句的语法格式为: Create { Proc | Procedure } procedure_name [ ; number ] [ { @parameter data_type } [ Varying ] [ = default ] [ Out | Output ] [Readonly] ] [ ,...n ] [ With Encryption | Recompile] [ For Replication ] As { sql_statement [;][ ...n ] } [;] 说明: procedure_name:存储过程名。 ; number:是可选整数,用于对同名的过程分组。 @parameter:过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。 data_type:参数以及所属架构的数据类型。 VARYING:指定作为输出参数支持的结果集。该参数由存储过程动态构造,其内容可能发生改变。仅适用于cursor参数。 default:参数的
您可能关注的文档
- SPSS中的方差分析.ppt
- spss图表的创建与编辑.ppt
- SPSS均值比较和T检验.ppt
- SPSS均数比较过程.ppt
- SPSS基本操作和描述性分析.ppt
- SPSS基本统计分析-界面.pptx
- spss多元回归分析案例讲解.ppt
- SPSS多响应变量分析.ppt
- spss多重响应分析.ppt
- SPSS实用手册:数据录入和问卷分析.pptx
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)