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.
📌 Script de ejemplo
Section titled “📌 Script de ejemplo”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;📌 Estructura básica
Section titled “📌 Estructura básica”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 DATOSWHERE Id = 12👉 Este comando elimina el registro cuyo Id es 12.
🔹 Uso de @@ROWCOUNT
Section titled “🔹 Uso de @@ROWCOUNT”Podemos usar @@ROWCOUNT para obtener el número de filas eliminadas en la última operación.
DELETE FROM DATOSWHERE Id = 17;
SELECT @@ROWCOUNT;TRUNCATE TABLE
Section titled “TRUNCATE TABLE”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.
🔹 Ejemplo de TRUNCATE
Section titled “🔹 Ejemplo de TRUNCATE”TRUNCATE TABLE DATOS