
给要删除的记录做标记。
DELETE
FROM
[DatabaseName!]TableName
[WHERE
FilterCondition1
[AND
|
OR
FilterCondition2
]]
参数
FROM
[DatabaseName!]TableName
指定要给其中的记录加删除标记的表。
DatabaseName!
指定包含该表的非当前数据库名。如果数据库不是当前的数据库,必须加上包含有该表的数据库名。在数据库名的后面、表名的前面包含感叹号
(!)
分隔符。
WHERE
FilterCondition1
[AND
|
OR
FilterCondition2
]
指定
Visual
FoxPro
只给某些记录做删除标记。
FilterCondition
指定要做删除标记的记录必须满足的条件。可以包含许多筛选条件,它们用
AND
或
OR
*** 作符连接。也可以使用
NOT
*** 作符给一个逻辑表达式的值取反,或使用
EMPTY(
)
检查一个空的字段。
备注
带有删除标记的记录在执行
PACK
前并不从表中做物理删除。可以用
RECALL
命令恢复(清除标记)带有删除标记的记录。
如果
SET
DELETED
设置为
ON,则所有命令都忽略带有删除标记的记录。
你可以在运行
DELETE
-
SQL
命令后立即检查
_tally
系统内存变量的值来确定被命令标记为删除的记录的个数。
与
DELETE
不同,DELETE-SQL
在为以共享方式打开的表中的多个记录做删除标记时,会使用记录锁定技术。这会在多用户的情况下减少对记录的竞争,但可能会降低性能。要获得最佳性能,可以独占方式打开表,或使用
FLOCK(
)
锁定该表。
示例
下面的示例打开
testdata
数据库中的
customer
表。delete-sql
为字段
country
内容为
usa
的所有记录做删除标记。所有带有删除标记的记录都显示出来。recall
all
用来清除所有删除标记。
CLOSE
DATABASES
CLEAR
OPEN
DATABASE
HOME(2)+"Data\testdata"
USE
customer
&&
打开
customer
表
DELETE
FROM
customer
WHERE
country
=
"USA"
&&
删除标记
CLEAR
LIST
FIELDS
company,
country
FOR
DELETED()
&&
列出标记了的记录
如果文件在此时被
pack
记录将被删除
WAIT
WINDOW
"当前被标记为删除的记录"+CHR(13)
+
;
"按一键恢复"
去掉记录的删除标记
RECALL
ALL
CLEAR
检查恢复的记录
COUNT
FOR
DELETED()=T
TO
nDeleted
转换
nDeleted
到一个字符串并显示信息
WAIT
WINDOW
ALLTRIM(STR(nDeleted))
+
"
记录标记为删除。"
编程
思路,生成一个新的数据库,从旧的数据库中提取数据,如果记录在新数据库中存在,就不复制,如果不存在,就将记录复制到新数据库中!这样的话就没重复的数据了
假定原数据是保存在sjdbf中,则程序如下:
use sj
copy to temp &&将原数据库内容复制到临时数据库中
zap &&清空原数据库
use temp
jlh=1
stro recc() to jls &&将原记录条数保存到变量中
do whil jlh<=jls &&依次判断在新表中是否存在重复记录
go jlh
stor code to lsbl &&将code字段的值保存在变量中
use sj
loca for code=lsbl
if found()
else
clos data
use temp
copy to lswj for recn()=jlh &&将没有找到的记录可在在临时文件中
use sj
appe from lswj &&从临时文件中追加记录
clos data
dele file lswjdbf &&删除产生的临时文件
endi
jlh=jlh+1
use tmep
endd
clos data
dele file tempdbf &&删除临时文件
再重新打开原数据库后,你会发现已经没重复的记录了
delete - sql 命令
给要删除的记录做标记。
语法
DELETE FROM [DatabaseName!]TableName
[WHERE FilterCondition1 [AND | OR FilterCondition2 ]]
参数
FROM [DatabaseName!]TableName
指定要给其中的记录加删除标记的表。
DatabaseName! 指定包含该表的非当前数据库名。如果数据库不是当前的数据库,必须加上包含有该表的数据库名。在数据库名的后面、表名的前面包含感叹号 (!) 分隔符。
WHERE FilterCondition1 [AND | OR FilterCondition2 ]
指定 Visual FoxPro 只给某些记录做删除标记。
说明
带有删除标记的记录在执行 PACK 前并不从表中做物理删除
recall
只是恢复当前选中的带删除标记的记录
recall
all
恢复所有带删除标记的记录
recall
for
条件表达式
恢复满足条件的带删除标记的记录
如:recall
for
性别="男"
以上就是关于VFP怎么删除null 值全部的内容,包括:VFP怎么删除null 值、vfp中如何删除重复数据、如何用SQL彻底删除VFP的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)