在vfp中删除索引的命令是什么?
发布网友
发布时间:2022-04-22 15:14
我来回答
共3个回答
热心网友
时间:2023-08-11 18:55
DELETE 命令请参阅
DELETE - SQL | DELETED() | PACK | RECALL | SET DELETED
[该主题是 beta 版的一部分并将在今后的版本中修改. 空的主题包含了一个占位符.]
发送该主题的返馈到微软
给要删除的记录做标记。
DELETE [Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias] [NOOPTIMIZE]
参数
Scope
指定要做删除标记的记录范围,Scope 子句有:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。
有关 Scope 子句的详细内容,请参阅 scope(作用域)子句 和 语言概述。
DELETE 的默认范围是当前记录 (NEXT 1)。
FOR lExpression1
指定一个条件,仅给满足逻辑条件 lExpression1 的记录做删除标记。
如果 lExpression1 是一个可优化表达式,且表在 DELETED( ) 上建立索引时,可以用 Rushmore 优化 DELETE ... FOR 创建的查询。要得到最佳性能,可在 FOR 子句中使用一个可优化表达式。
有关 Rushmore 可优化表达式的内容,请参阅 SET OPTIMIZE 和 优化应用程序 中的 用 Rushmore 查询优化数据访问速度。
WHILE lExpression2
指定一个条件。只要 lExpression2 计算为“真”(.T.),就给这些记录做删除标记。
IN nWorkArea
指定要添加记录删除标记的表所在的工作区。
IN cTableAlias
指定要添加记录删除标记的表的别名。
如果省略 nWorkArea 和 cTableAlias,就给当前选定工作区中的表记录做删除标记。
NOOPTIMIZE
关闭 DELETE 的 Rushmore 优化。
备注
标有删除标记的记录在使用 PACK 前并不从表上做物理删除。标有删除标记的记录可以用 RECALL 恢复(清除标记)。
示例
下面的示例打开 testdata 数据库中的 customer 表,delete 标识字段 country 中包含 usa 的所有要删除的记录。所有做了删除标记的记录都显示出来。recall all 用来清除所有删除标记。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && 打开 Customer 表
DELETE FOR country = 'USA' && 删除标记
CLEAR
LIST FIELDS company, country FOR DELETED() && List marked records
RECALL ALL && Unmark all records marked for deletion
请参阅
DELETE - SQL | DELETED() | PACK | RECALL | SET DELETED
热心网友
时间:2023-08-11 18:55
delete from 表名
需要注意的是,foxpro中delete 执行之后,并不是真正的删除数据,只是将其标志位设置为删除,如果想真正删除,还需要执行pack
即:
delete from 表名
pack
热心网友
时间:2023-08-11 18:56
给准备删除的记录加上删除标志
可以是单独一个delete,针对当前记录
也可以是delete next 10,针对此后10条记录
也可以是delete all,针对所有记录
也可以是delete for 性别="男",针对所有“性别”字段值是“男”的记录