- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库第四次实验下(存储过程)
Company Name LOGO LOGO 数据库系统实验 实验四下:存储过程 存储过程 SQL Server提供了一种方法:可以将一些预先编译的SQL语句集中起来由SQL Server数据库服务器来完成以实现某个任务,这就是存储过程。 存储过程常驻在SQL Server数据库服务器的内存中。 存储过程 使用存储过程的优点是: (1)过程在服务器端运行,执行速度快。 (2)过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译代码执行,提高了系统性能。 (3) 确保数据库的安全。可以不授权用户直接访问应用程序中的一些表,而是授权用户执行访问这些表的过程。非表的授权用户除非通过过程,否则就不能访问这些表。 (4) 自动完成需要预先执行的任务。过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。 用户存储过程只能定义在当前数据库中,使用SQL命令语句创建存储过程。在用户的定义中不能使用下列对象创建语句: CREATE VIEW CREATE DEFAULT CREATE RULE CREATE PROCEDURE CREATE TRIGGER 1. SQL命令创建存储过程 语法格式: CREATE [OR ALTER] PROCEDURE procedure_name /*定义过程名*/ [{@参数 数据类型}[VARYING][=默认值][OUTPUT][...,n]] /*定义参数类型 及属性*/ AS sql_statement /*PL/SQL过程体,要执行的操作*/ 其中: procedure_name:是过程名,必须符合标识符规则。 @参数:是过程的参数。参数名必须符合标识符规则,创建过程时,可以声明一个或多个参数,执行过程时应提供相对应的参数。可以对它赋默认值。若指定OUTPUT则该变量为一个输出变量。 sql_statement:代表过程体包含的PL/SQL语句。 2、执行存储过程 EXEC[UTE] Procedure_Name {value|express[,...n][,@parameter OUTPUT]} 其中,@parameter后面跟了OUTPUT表明该变量为接受存储过程的输出变量的值,在执行语句前需用Declare声明 例7 查询products表,如果存在输入值,则输出“存在该产品”,否则输出“不存在该产品”。 create proc exist_pro @productname nvarchar(40)=A% as begin if exists(select * from products where productname like @productname) print 存在+cast(@productname as nvarchar(40))+产品 else print 不存在+cast(@productname as nvarchar(40))+产品 end --执行: exec exist_pro Tofu 例8 使用存储过程计算给定CategoryID的产品(默认为‘1’)的总价 create proc sum_price @categoryid int=1,@sum_prc money output as begin select @sum_prc=sum(unitprice) from products where categoryid=@categoryid print cast(@categoryid as char(5))+CategoryID产品的总价为:+cast(@sum_prc as char(10)) end --执行该存储过程 declare @sum_prc money --声明传递出来的变量 exec sum_price 4,@sum_prc output --声明这是个输出变量 SQL命令修改存储过程 语法格式: ALTER [OR ALTER] PROCEDURE procedure_name /*定义过程名*/ [{@参数 数据类型}[VARYING][=默认值][OUTPUT][...,n]] /*定义参数类型 及属性*/ AS sql_statement /*PL/SQL过程体,要执行的操作*/ 删除存储过程 DROP proc[edu
您可能关注的文档
最近下载
- 全过程工程咨询业务管理制度.pdf VIP
- 驾校培训教学日志.docx VIP
- 恒力石化年产10万吨乙酸乙烯项目3-设备设计及选型说明书.docx VIP
- 精品解析: 浙江省杭州市西湖区六校联考2024-2025学年七年级上学期期中数学试卷(解析版).docx VIP
- 钣金展开实用技术手册(SolidWorks 202x版).pptx VIP
- GIS基础知识课件.pptx VIP
- 山西省幼儿园一日生活指引(试行).docx VIP
- 河南省纪委监委公开遴选公务员笔试试题及答案解析.docx VIP
- 舍弗勒IE工业工程手册.pdf VIP
- 药用包装材料质量标准ISO15378(中文).doc VIP
原创力文档


文档评论(0)