Skip to content

Sentencia DELETE

La sentencia DELETE se utiliza para eliminar registros de una tabla.
Podemos borrar filas específicas mediante una condición o eliminar todos los registros si no se usa WHERE.


Antes de los ejemplos, creamos una tabla de prueba DATOS y la llenamos con 100 registros:

CREATE TABLE DATOS (
Id int identity not null,
dato varchar(100),
fx_alta datetime,
CONSTRAINT PK_DATOS PRIMARY KEY (Id)
);
DECLARE @i int = 1;
WHILE (@i <= 100)
BEGIN
DECLARE @dato varchar(100) = 'Dato:' + CAST(@i AS varchar);
INSERT INTO DATOS (dato, fx_alta)
VALUES (@dato, GETDATE());
SET @i += 1;
END;
SELECT * FROM DATOS;

DELETE FROM DATOS
-- WHERE <condición>
  • Si se omite WHERE, se eliminan todas las filas de la tabla.
  • Con WHERE, solo se eliminan los registros que cumplan la condición.

🔹 Ejemplo 1: eliminación de un registro

Section titled “🔹 Ejemplo 1: eliminación de un registro”
DELETE FROM DATOS
WHERE Id = 12

👉 Este comando elimina el registro cuyo Id es 12.


Podemos usar @@ROWCOUNT para obtener el número de filas eliminadas en la última operación.

DELETE FROM DATOS
WHERE Id = 17;
SELECT @@ROWCOUNT;

La instrucción TRUNCATE TABLE elimina todos los registros de una tabla de forma masiva.
Es más rápida y consume menos recursos que DELETE, pero tiene restricciones.


TRUNCATE TABLE DATOS