全面掌握MS ACCESS SQL(14)
时 间:2018-01-05 16:04:29
作 者:Big Young ID:252 城市:襄阳
摘 要: 使用带DROP CONSTRAINT子句的ALTER TABLE语句和DROP INDEX语句对索引进行删除。
正 文:
第四节 用SQL删除已有的索引
索引的优点很明显,那就是加快查询速度。但是索引也有不适宜的情况,原因是建立索引后,更新索引上的数据时会导致表中记录的物理顺序的变更,代价较大,且会占用一定的系统资源,因此对于经常更新的列不宜建立索引,对于应用中感觉不适当的索引,就有必要将其删除以优化数据的性能。因为索引逻辑和物理上独立于相关表中的数据,在任何时候删除索引都不会影响表(或其他索引)。如果删除了索引,所有SQL程序和应用会继续正常运行,但访问先前有索引的数据会变慢。
要从表中删除索引,可使用Drop INDEX语句或者在Alter TABLE语句中使用Drop CONSTRAINT子句。对于Microsoft Access而言,一个表中索引名唯一,但在不同的表中可以使用相同的索引名,因此必须指明要删除的索引的表名。
一、用Drop INDEX语句删除索引
Drop INDEX的语法非常简单,如下:
Drop INDEX index ON table;
这里index是索引的名称,table是表的名字,此语句的功能就是将指定表的指定索引删除掉。
我们上一节创建了一个名为“人员”的工具表,并在“电话”字段上创建了一个名为“索引_电话”的索引,现在我们要将其移除,使用SQL语句如下:
Drop INDEX 索引_电话 ON 人员;
Drop INDEX语句一次只能删除一个命名的索引,如果要删除多个索引就需要多次执行这个语句并分另指定要删除索引的名称。对于创建时用户没有指定名称而由系统自动随机命名的索,用此语句就不能完成了,因为我们不知道其名字,只能用VBA编程结合DAO对象来完成了,这已超出了本文讨论的范围,在此就不详述了。
下面我们再来看一个例子:
Drop INDEX 索引_姓名 ON 人员;
这条语句将删除“人员”表中的名称为“索引_姓名”的索引。
二、用Alter TABLE语句删除索引
Alter TABLE主要是用来修改表的结构及字段的属性,带Drop CONSTRAINT子句后可以对索引进行删除,语法也比较简单,如:
Alter TABLE tblName Drop CONSTRAINT idxName;
在这里tblName是表的名称,操作是在此表上进行的,idxName是将要被删除的索引的名字,执行此语句后指定的索引将不复存在。
Alter TABLE 人员 Drop CONSTRAINT 索引_复合;
这条语句将删除“人员”表中名为“索引_复合”的索引。
与Drop INDEX语句一样带Drop CONSTRAINT子句的Alter TABLE语句一次也只能删除一个索引,如果指定一个索引名列表,执行时会提示后面的索引不存在的错误消息。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)