- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sql2005常用存储过程、视图、索引器与触发器剖析
Chapter 6常用存储过程、视图、索引器与触发器 本章目标 掌握如何创建视图 掌握如何创建索引 掌握如创创建触发器 掌握常用的存储过程 什么是视图 什么是视图 视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 同一张原始表,根据不同用户的不同需求,可以创建不同的视图 什么是视图 视图的用途 筛选表中的行 防止未经许可的用户访问敏感数据 降低数据库的复杂程度 将多个物理数据库抽象为一个逻辑数据库 如何创建视图 使用T-SQL语句创建视图的语法 如何创建视图 创建方便教员查看成绩的视图 索引类型 唯一索引:唯一索引不允许两行具有相同的索引值 主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空 聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个 非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个 索引的优缺点 优点 加快访问速度 加强行的唯一性 缺点 带索引的表在数据库中需要更多的存储空间 操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新 创建索引的指导原则 请按照下列标准选择建立索引的列。 该列用于频繁搜索 该列用于对数据进行排序 请不要使用下面的列创建索引: 列中仅包含几个不同的值。 表中仅包含几行。为小型表创建索引可能不太划算,因为SQL Server在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长 小结1 视图是一张虚拟表,可以方便不同用户的查询,提高数据的安全性,筛选特定的数据行 建立索引有助于快速检索数据。索引分为唯一索引、主键索引、聚集索引、非聚集索引 INSERT触发器 DELETE触发器 UPDATE触发器 查看触发器 (1)使用SQL Server管理平台查看触发器信息。 在SQL Server管理平台中,展开服务器和数据库,选择并展开表,然后展开触发器选项,右击需要查看的触发器名称,如图9-4所示,从弹出的快捷菜单中,选择“编写触发器脚本为→create到→新查询编辑器窗口”,则可以看到触发器的源代码。 查看触发器 (2)使用系统存储过程查看触发器。 系统存储过程sp_help、sp_helptext和sp_depends分别提供有关触发器的不同信息。其具体用途和语法形式如下。 sp_help:用于查看触发器的一般信息,如触发器的名称、属性、类型和创建时间。 sp_help ‘触发器名称’ sp_helptext:用于查看触发器的正文信息。 sp_helptext ‘触发器名称’ sp_depends:用于查看指定触发器所引用的表或者指定的表涉及到的所有触发器。 sp_depends ‘触发器名称’ sp_depends ‘表名’ 修改触发器 通过SQL Server管理平台、存储过程,可以修改触发器的正文和名称。 1.使用SQL Server管理平台修改触发器正文。 在管理平台中,展开指定的表,右击要修改的触发器,从弹出的快捷菜单中选择“修改”选项,则会出现触发器修改窗口,如图9-5所示。在文本框中修改触发器的SQL语句,单击“语法检查”按钮,可以检查语法是否正确,单击“执行”按钮,可以成功修改此触发器。 修改触发器 修改DML触发器的语法形式如下: ALTER TRIGGER schema_name.trigger_name ON (table|view) [WITH dml_trigger_option[,...n]] (FOR|AFTER|INSTEAD OF) {[DELETE][,][INSERT][,][UPDATE]} [NOT FOR REPLICATION] AS?{sql_statement[;][...n]|EXTERNAL NAME method specifier[;]} dml_trigger_option::=[ENCRYPTION][lEXECUTE AS Clause ] method_specifier ::=assembly_name.class_name.method_name 修改DDL触发器的语法形式如下: ALTER TRIGGER trigger_name ON {DATABASE|ALL SERVER}[WITH ddl_trigger_option [,...n]] {FOR|AFTER}{event
文档评论(0)