DELETE 语句 (Microsoft Access SQL)
适用于:Access 2013、Office 2013
创建一个删除查询,用于从 FROM 子句中列出的一个或多个表中删除满足 WHERE 子句的记录。
语法
DELETE [table.*] FROM table WHERE criteria
DELETE 语句包含以下部分:
Part |
说明 |
---|---|
table |
从中删除记录的表的可选名称。 |
table |
从中删除记录的表的名称。 |
criteria |
表达式,用于确定要删除哪些记录。 |
说明
希望删除多个记录时,DELETE 语句特别有用。
若要从数据库中删除整个表,可以将 Execute 方法与 DROP 语句一起使用。 但是,如果删除表,结构将丢失。 相反,使用 DELETE 时,仅删除数据;表结构和所有表属性(如字段属性和索引)保持不变。
可以使用 DELETE 从与其他表存在一对多关系的表中删除记录。 当查询中删除了关系的某一方中的相应记录时,级联删除操作会删除在关系的多方表中的相应记录。 例如,在“客户”表和“订单”表的关系中,“客户”表是关系的一方,而“订单”表则是关系中的多方。 如果指定了级联删除选项,那么从“客户”表中删除一个记录将导致“订单”表中相应的记录被删除。
删除查询将删除整个记录,而不仅仅删除特定字段中的数据。 如果要删除特定字段的值,请创建一个更新查询,将相应字段的值更改为 Null。
重要
- 使用删除查询删除记录后,无法取消该操作。 如果要知道删除了哪些记录,先检查使用相同条件的选择查询的结果,然后运行删除查询。
- 不论什么时候都要维护数据的备份。 如果错删了记录,还可以从备份中检索这些记录。
示例
本例删除职务为 Trainee 的雇员的所有记录。 当 FROM 子句中仅包含一个表时,您不必在 DELETE 语句中列出该表的名称。
Sub DeleteX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Delete employee records where title is Trainee.
dbs.Execute "DELETE * FROM " _
& "Employees WHERE Title = 'Trainee';"
dbs.Close
End Sub