数据库性能提高.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库性能提高.ppt

阶段五: 数据库性能提高 存储过程 SQL Server提供了一种方法,可以将一些固定的操作集中起来由数据库服务器来完成,以完成某个特定的任务,这种方法就是存储过程。 一般分为五类:系统存储过程(sp_)、用户定义的存储过程(pr_)、扩展存储过程(xp_)、临时存储过程(#或##)和远程存储过程。 优点:加快系统运行速度,封装复杂性,实现代码重用,安全性高,减少网络流量 创建和执行存储过程 create pro[edure] 存储过程名 ( @参数1 数据类型[=默认值] [output], @参数2 数据类型[=默认值] [output], … ) as SQL 语句 执行存储过程: [exec] procedure_name [value_list] 例:编写一个存储过程以实现向course表中插入指定的记录,要求课程记录的信息在执行存储过程的时候指定,然后通过执行存储过程完成指定记录的插入 create proc pr_addcourse ( @cno varchar(20), @cname varchar(20), @ccredit int, @ctype varchar(20) ) as insert into course values(@cno,@cname,@ccredit,@ctype) exec pr_addcourse 1002gdsx,高等数学,3,基础课 使用默认参数 create proc pr_addcourse 2( @cno varchar(20), @cname varchar(20), @ccredit int=5, @ctype varchar(20) ) as insert into course values(@cno,@cname,@ccredit,@ctype) exec pr_addcourse2 @cno=‘yy’,@cname=‘英语’,@ctype=‘基础课’ 使用输出参数 例:编写一个存储过程,将指定课程号的学分数通过输出参数返回,然后验证 create proc pr_getcredit ( @cno varchar(20), @ccredit int output ) as select @ccredit=c_credit from course where c_no=@cno 验证:declare @ccredit int exec pr_getcredit 1002c#,@ccredit output print @ccredit 触发器 触发器是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程。 一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行 触发器是一个功能强大的工具,它与表格紧密相连,在表中数据发生变化时自动强制执行。触发器可以用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。 触发器的优点 触发器是自动的执行的。 触发器可以通过数据库中的相关表进行层叠更改。 触发器的类型 AFTER触发器 INSTEAD OF触发器 FOR触发器 使用Transact-SQL语句创建触发器 使用Transact-SQL语言中的CREATE TRIGGER命令可以创建触发器,其中需要指定定义触发器的基表、触发器执行的事件和触发器的所有指令。 create trigger 触发器名 on 表|视图 for|after|instead of insert|update|delete as sql 语句 例:需要在学生信息表中增加学生信息时,显示“欢迎新同学”,可以为information表创建一个插入型触发器。 create trigger info_insert_tri on information for insert as print ‘欢迎新同学!!’ 每个触发器有两个特殊的表:inserted表和deleted表,这两个表都是逻辑表,是有系统管理的,存储在内存中,不是存储在数据库中,因此不允许用户直接对其修改。这两个表是动态驻留在内存中的,当触发器工作完成后,这两个表也被删除,这两个表主要保存因用户操作而被影响到的原数据值或新数据值,而且这两张表是只读的,用户不能向这两个表写入内容,但可以引用表中的数据。 例:需要在数据表score中插入记录时进行如下检查:当试图往score表中插入在数据表information中不存在的s_no或在course表中不存在的c_no时,撤销操作,并返回一条错误

文档评论(0)

5566www + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档