
En este tutorial de SQL Server, aprenderás a usar la instrucción DELETE
de SQL Server para eliminar una o más filas de una tabla.
Si deseas eliminar información de una tabla de SQL Server para eso tenemos el comando o instrucción DELETE
. La instrucción DELETE FROM
en SQL se usa para eliminar registros de una tabla.
Ten en cuenta que el comando DELETE FROM
no puede eliminar ninguna fila de datos que viole una llave foránea FOREIGN KEY
u otras restricciones.
Sintaxis
Para eliminar una o más filas de una tabla, utiliza la instrucción DELETE
. En seguida puedes ver la sintaxis:
DELETE [ TOP ( expression ) [ PERCENT ] ]
FROM nombre_tabla_estradawebgroup
[WHERE search_condition];
Si no queremos eliminar todos los registros de la tabla SQL, es decir, solamente algunos registros, debemos indicar cuál o cuáles, para ello utilizamos el comando DELETE
junto con la cláusula WHERE
con la cual establecemos la condición que deben cumplir los registros a borrar.
La cláusula WHERE
es importante aquí. Sin especificar una condición, todos los registros de la tabla serán eliminados.
Por ejemplo, la siguiente instrucción eliminará todas las filas de nombre_tabla_estradawebgroup:
DELETE FROM nombre_tabla_estradawebgroup;
Para especificar solo un número especifico o porcentaje de filas aleatorias que se eliminarán, utilice la cláusula TOP.
Por ejemplo, la siguiente instrucción DELETE
elimina 10 filas aleatorias de nombre_tabla_estradawebgroup:
DELETE TOP 10 FROM nombre_tabla_estradawebgroup;
Debido a que la tabla almacena sus filas en un orden no especificado, no sabemos qué filas se eliminarán, pero sabemos con certeza que el número de filas que se eliminarán es 10.
Del mismo modo, puede eliminar el 10 por ciento de las filas aleatorias utilizando la siguiente instrucción DELETE
:
DELETE TOP 10 PERCENT FROM nombre_tabla_estradawebgroup;
En producción rara vez se requiere eliminará todas las filas de una tabla, para evitar eso recuerda que debes especificar la condición de búsqueda en la cláusula WHERE
para limitar el número de filas que se eliminan.
Las filas que provocan que la condición de búsqueda se evalúe como verdadera se eliminarán.
La cláusula WHERE
es opcional. Si la omites, la instrucción DELETE
eliminará todas las filas de la tabla.
Ejemplos de sentencias DELETE
de SQL Server
Creemos una nueva tabla para demostración.
La siguiente instrucción crea una tabla llamada production.product_estradawebgroup con los datos copiados de la tabla production.products, de la base de datos BikeStores de ejemplo:
SELECT * INTO production.product_estradawebgroup
FROM production.products;
El siguiente SELECT
devuelve todas las filas de la tabla production.product_estradawebgroup:
SELECT * FROM production.product_estradawebgroup;
Como se puede ver en la salida, tenemos 321 filas en total.
1) Eliminar un número de registros aleatoriamente en una tabla SQL Server
La siguiente instrucción DELETE
elimina 21 filas aleatorias de la tabla production.product_estradawebgroup:
DELETE TOP (21) FROM production.product_estradawebgroup;
Este es el mensaje emitido por el servidor SQL:
(21 row(s) affected)
Significa que se han eliminado 21 filas.
2) Eliminar un porcentaje de registros aleatoriamente en una tabla SQL Server
La siguiente instrucción DELETE
elimina el 5 por ciento de las filas aleatorias de la tabla production.product_estradawebgroup:
DELETE TOP (5) PERCENT FROM production.product_estradawebgroup;
SQL Server regresa el siguiente mensaje, en el cual indica que se han eliminado 15 filas (300 x 5% = 15).
(15 row(s) affected)
3) Eliminar algunas filas de una tabla de SQL Server con una condición
La siguiente declaración DELETE
elimina todos los productos cuyo año de modelo es 2017:
DELETE FROM production.product_estradawebgroup
WHERE model_year = 2017;
Aquí está el mensaje de salida:
(75 row(s) affected)
4) Eliminar todas las filas de una tabla de SQL Server
La siguiente instrucción DELETE
elimina todas las filas de la tabla product_estradawebgroup:
DELETE FROM production.product_estradawebgroup;
Tenga en cuenta que, si desea eliminar todas las filas de una tabla grande, debe usar la instrucción TRUNCATE TABLE
, que es más rápida y eficiente.
En este tutorial, ha aprendido cómo usar la instrucción DELETE
de SQL Server para eliminar una o más filas de una tabla.