文档详情

第8章-视图与索引.ppt

发布:2018-12-13约1.3万字共68页下载文档
文本预览下载声明
若想为现有系统中的视图添加索引,必须计划绑定任何想要放入索引的视图。可以除去视图并通过指定 WITH SCHEMABINDING 重新创建它;也可以创建另一个视图,使其具有与现有视图相同的文本,但是名称不同。优化器将考虑新视图上的索引,即使在查询的 FROM 子句中没有直接引用它。 8.2.4 查看索引信息 在实际使用索引的过程中,有时需要对表的索引信息进行查询,了解在表中曾经建立的索引。可以使用SQL Server Management Studio进行查询;也可以在查询窗口中使用T-SQL语言句进行查询。 1. 在SQL Server Management Studio中查看索引信息 在SQL Server Management Studio中,选择要查看的表,然后使用鼠标右键单击相应的表,从菜单中选择“设计”,进入“表设计器”窗口,右键单击任意位置,选择“索引/键”即可查看此表上所有的索引信息。例如,查看“学生表”上的索引信息 2. 使用T_SQL语句查看索引信息 可以使用系统存储过程sp_help index或sp_help来查看索引信息,比如查看student上的索引信息。 (1) 使用系统存储过程sp_helpindex查看索引信息 USE teaching GO EXEC sp_helpindex student 结果显示了“学生表”中所建立的两个索引。①索引名称为“index_姓名”,索引描述为非聚集索引,索引关键字为“姓名”。②索引名称为“PK__学生表”,索引描述为聚集索引、唯一索引,索引关键字为“学号”。 (2) 使用系统存储过程sp_help查看索引信息 USE teaching GO EXEC sp_help student 由结果可以看出,执行sp_help系统存储过程查询的结果要比执行sp_helpindex显示的结果更加详细,除了索引信息,还包括当前表的基本信息、与此表相关的各种约束等。 8.2.5 删除索引 当一个索引不再需要时,可以将其从数据库中删除,以释放当前占用的存储空间,这些释放的空间可以由数据库中的任何对象使用。 删除聚集索引可能要花费一些时间,因为必须重建同一个表上的所有非聚集索引。必须先删除约束后,才能删除PRIMARY KEY或UNIQUE约束使用的索引。如果要在不删除和重新创建PRIMARY KEY或UNIQUE约束的情况下,删除并重新创建该约束使用的索引,应该通过一个步骤重建该索引。删除某个表时,会自动删除在此表上创建的索引。 1.在SQL Server Management Studio中删除索引 与在SQL Server Management Studio中创建索引的步骤一样,选中要进行删除索引的表,选中“索引”选顶,展开“索引”选顶前面的“+”号,右键单击要删除的索引,选择“删除”按钮,弹出“删除对象”对话框,单击“确定”按钮即可。 2.使用T-SQL语句删除索引 删除索引的T-SQL语句的语法格式为: DROP INDEX table_name.index_name 【例8-14】删除student表中的“Index_sname”索引。 DROP INDEX student. Index_sname GO 可更新条件*: (1)对数据的任何更新(包括UPDATE、INSERT和DELETE语句)都只能引用一个基本表的列。 ①如果视图数据为一个表的行、列子集,则可更新(包括UPDATE、INSERT和DELETE语句);但如果视图中包含的列为表定义时不允许取空值又没有给默认值的列,则此视图不可以插入数据。 ②如果视图所依赖的基本表有多个时,不能向该视图添加(INSERT)数据。 ③若视图依赖于多个基本表,那么一次修改只能修改(UPDATE)一个基本表中的数据。 ④若视图依赖于多个基本表,那么不能通过视图删除(DELETE)数据。 (2)视图中被修改的列必须直接引用表列中的基础数据。 不能是通过任何其他方式对这些列进行派生而来的数据,比如通过聚合函数、计算(如表达式计算)、集合运算等。 (3)被修改的列不应是在创建视图时受GROUP BY、HAVING、DISTINCT或TOP子句影响的。 注意:有可能插入并不满足视图查询的WHERE子句条件中的一行。为了进行限制此操作,可以在创建视图时使用WITH CHECK OPTION选项。 【例8-7】通过male_view视图向student表中插入一个“男”生。 INSERT INTO male_view VALUES (‘1501005’, ‘张三’, ‘男’, 19,’2015-09-01’,‘电子’,’15级’) 如果通过male_view视图向student表中插入一个“女”生,也可以完
显示全部
相似文档