使用 DELETE 语句删除行
DELETE 语句可删除表或视图中的一行或多行。DELETE 语法的简化形式为:
DELETE table_or_view FROM table_sources WHERE search_condition
table_or_view 指定要从中删除行的表或视图。table_or_view 中所有符合 WHERE 搜索条件的行都将被删除。如果没有指定 WHERE 子句,将删除 table_or_view 中的所有行。FROM 子句指定删除时用到的额外的表或视图及联接条件,WHERE 子句搜索条件中的谓词使用它们限定要从 table_or_view 中删除的行。该语句不从 FROM 子句指定的表中删除行,而只从 table_or_view 指定的表中删除行。
任何已删除所有行的表仍会保留在数据库中。DELETE 语句只从表中删除行,要从数据库中删除表,必须使用 DROP TABLE 语句。
使用 DELETE 语句删除行
Transact-SQL
对于 Northwind 数据库中名为 Lyngbysild 的公司所提供的产品,以下脚本显示了删除与这些产品有关的行时所需要的三个 DELETE 语句。因为该脚本涉及了从现有订单中删除行,所以它不是一个典型的商业操作,但是它确实显示了一系列复杂程度不同的删除操作。
USE Northwind GO DELETE [Order Details] FROM Suppliers, Products WHERE Products.SupplierID = Suppliers.SupplierID AND Suppliers.CompanyName = 'Lyngbysild' AND [Order Details].ProductID = Products.ProductID GO DELETE Products FROM Suppliers WHERE Products.SupplierID = Suppliers.SupplierID AND Suppliers.CompanyName = 'Lyngbysild' GO DELETE Suppliers WHERE CompanyName = 'Lyngbysild' GO