刪除資料

已完成

如同 INSERT 陳述式一律會將整個資料列新增至資料表,DELETE 陳述式一律會移除整個資料列。

使用 DELETE 移除特定資料列

DELETE 是在一組資料列上運作,而這些資料列是由 WHERE 子句中的條件所定義或在聯結中定義。 DELETE 陳述式與 SELECT 陳述式中的 WHERE 子句具有相同結構。

注意

請務必記住,沒有對應 WHERE 子句的 DELETE 將會移除資料表中所有資料列。 請謹慎使用 DELETE 陳述式。

下列程式碼顯示 DELETE 陳述式的基本語法:

DELETE [FROM] <TableName>
WHERE <search_conditions>;

下列範例使用 DELETE 陳述式,從指定資料表中移除所有已中止的產品。 資料表中有一個名為「已中止」的資料行,表示無法再使用的產品,資料行的值為 1。

DELETE FROM Production.Product
WHERE discontinued = 1;

使用 TRUNCATE TABLE 移除所有資料列

不使用 WHERE 子句的 DELETE 會移除資料表中所有資料列。 因此,通常會透過 WHERE 子句中的篩選有條件地使用 DELETE。 如果確實想要移除所有資料列並留下空白資料表,您可以使用 TRUNCATE TABLE 陳述式。 此陳述式不允許 WHERE 子句,而且一律會在一項作業中移除所有資料列。 以下是範例:

TRUNCATE TABLE Sales.Sample;

當確實想要移除所有資料列時,TRUNCATE TABLE 會比 DELETE 更有效率。