刪除資料
如同 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 更有效率。