¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

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.

Artículos relacionados
Cómo eliminar los espacios en blanco en SQL
Cómo eliminar los espacios en blanco en SQL

La función TRIM en SQL se usa para elim

¿Qué es SQL Server?
¿Qué es SQL Server?

SQL Server es un sistema de gestión de

0 Comentarios
Enviame un comentario