- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 存储过程与触发器 本章内容 存储过程 触发器 存储过程 什么是存储过程 为什么使用存储过程 创建存储过程 使用存储过程 存储过程引言 在使用SQL Server 2000 创建应用程序时,Transact-SQL 编程语言是应用程序和 SQL Server 数据库之间的主要编程接口。 使用 Transact-SQL 程序时,可用两种方法存储和执行程序。 可以在本地存储程序,并创建向 SQL Server 发送命令并处理结果的应用程序; 也可以将程序在 SQL Server中存储为存储过程,并创建执行存储过程并处理结果的应用程序。 什么是存储过程 Transact-SQL 语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。 换句话说:在一个存储过程内,可以设计、编码和测试执行某个常用任务所需的 SQL 语句和逻辑。之后,每个需要执行该任务的应用程序只须执行此存储过程即可。(代码重用) 为什么使用存储过程(一) 1.允许模块化程序设计 只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。 银行每个月底做结算的例子 为什么使用存储过程(二) 2. 对于需要重复执行的代码,执行效率更高 如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。 系统会在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。 如果不采用存储过程,每次运行那些需要重复执行的 Transact-SQL 语句时,都需要把这些语句从客户端发送到服务器端,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化——显然效率会很低。 为什么使用存储过程(三) 3.减少网络流量 一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。 4.可作为安全机制使用 即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。 存储过程的处理流程 创建存储过程语法 CREATE PROC [ EDURE ] procedure_name [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] AS sql_statement [ ...n ] 创建存储过程举例(一) 从authors表中返回所有作者的姓名、电话、地址和所在的州名。 CREATE PROCEDURE au_info_all AS SELECT au_lname,au_fname,phone,address,state FROM authors GO 创建存储过程举例(二) 指定参数,返回指定州的作家的姓名、电话、地址。 CREATE PROCEDURE au_info @state char(2) AS SELECT au_lname, au_fname,phone,address FROM authors WHERE state = @state GO 创建存储过程举例(三) 具有默认值的存储过程。 CREATE PROCEDURE au_info @state char(2) = ‘CA‘ --默认值 = ’CA’ AS IF @state NOT LIKE ‘[A-Z][A-Z] ’ --增加一段检查代码 BEGIN print 输入参数错误 return END SELECT au_lname, au_fname,phone,address FROM authors WHERE state = @state GO 使用存储过程(一) 对于例1我们可以以下面的方式执行: EXECUTE au_info_all EXEC au_info_all 如果该过程是批处理中的第一条语句,则可使用:au_info_all 使用存储过程(二) 对于例2(有参数的存储过程)我们可以以下面的方式执行: EXECUTE au_info CA EXECUTE au_info @state = CA EXEC au_info CA EXEC au_info @state = CA 如果该过程是批处理中的第一条语句,则可使用: au_info CA au_info @state = CA 使用存储过程(三)
您可能关注的文档
最近下载
- 2024春苏教版《亮点给力大试卷》 数学一年级下册(全册有答案).docx VIP
- 2024年初中语文中考作文素材名言警句分类总结.pdf VIP
- 人教版(2024年新版)二年级数学下册全册教案(含课后反思).pdf VIP
- 2024年沪科版中考冲刺模拟测试物理试题及参考答案.pdf VIP
- 2024春苏教版《亮点给力大试卷》 数学三年级下册(全册有答案).docx VIP
- GJB5000A2008全套资料2204-2019软件配置管理规程.doc
- 礼别幼年见证成长十岁成长礼PPT模板(精选图文).pptx
- 2024年初中英语中考复习主题句子分类总结.pdf VIP
- 2024年初中英语中考复习主题句子分类总结.pdf VIP
- 数理金融初步 Ross 第三版 中文答案.pdf
文档评论(0)