Eliminación de datos
Al igual que la instrucción INSERT siempre agrega filas completas a una tabla, la instrucción DELETE siempre quita filas enteras.
Uso de DELETE para eliminar filas específicas
DELETE funciona en un conjunto de filas, definidas por una condición en una cláusula WHERE o en una combinación. La cláusula WHERE de una instrucción DELETE tiene la misma estructura que una cláusula WHERE de una instrucción SELECT.
Nota:
Es importante tener en cuenta que una cláusula DELETE sin una cláusula WHERE correspondiente quitará todas las filas de una tabla. Use la instrucción DELETE con precaución.
El código siguiente muestra la sintaxis básica de la instrucción DELETE:
DELETE [FROM] <TableName>
WHERE <search_conditions>;
En el ejemplo siguiente se usa la instrucción DELETE para quitar todos los productos de la tabla especificada que se han dejado de usar. Hay una columna en la tabla denominada discontinued y, para los productos que ya no están disponibles, la columna tiene un valor de 1.
DELETE FROM Production.Product
WHERE discontinued = 1;
Uso de TRUNCATE TABLE para quitar todas las filas
DELETE sin una cláusula WHERE quita todas las filas de una tabla. Por este motivo, DELETE se suele usar condicionalmente, con un filtro en la cláusula WHERE. Si realmente desea quitar todas las filas y dejar una tabla vacía, puede usar la instrucción TRUNCATE TABLE. Esta instrucción no admite una cláusula WHERE y siempre quita todas las filas en una operación. Veamos un ejemplo:
TRUNCATE TABLE Sales.Sample;
TRUNCATE TABLE es más eficaz que DELETE cuando desea quitar todas las filas.