SQL

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

Estrada Web Group
Administrador
¿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.

Compartir artículo:

Más artículos geniales

Tipo de datos BIT de SQL Server

Tipo de datos BIT de SQL Server

Resumen: en este tutorial, aprenderás a usar el tipo de datos BIT de SQL Server para almacenar datos de bits en la base de datos.

Ver artículo completo
Cómo eliminar índices con DROP INDEX en SQL Server

Cómo eliminar índices con DROP INDEX en SQL Server

Resumen: en este tutorial, aprenderás a usar la instrucción DROP INDEX de SQL Server para eliminar índices existentes.

Ver artículo completo
¿Cómo utilizar las restricciones de llave foránea o FOREIGN KEY de SQL Server?

¿Cómo utilizar las restricciones de llave foránea o FOREIGN KEY de SQL Server?

En este tutorial, aprenderá a usar la restricción de llave foránea, externa o FOREIGN KEY de SQL Server para imponer un enlace entre los datos en dos tablas.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla