SQL

Eliminar datos de una tabla de SQL Server con TRUNCATE TABLE

Estrada Web Group
Estrada Web Group
Eliminar datos de una tabla de SQL Server con TRUNCATE TABLE

Resumen: en este tutorial, aprenderás a usar la declaración TRUNCATE TABLE de SQL Server para eliminar todas las filas de una tabla de manera rápida y eficiente.

Introducción a la sentencia TRUNCATE TABLE de SQL Server

Cuando se desea eliminar todas las filas de una tabla, normalmente se usa la declaración DELETE sin una cláusula WHERE, ahora aprenderas a usar TRUNCATE TABLE para hacer eso.

El siguiente ejemplo crea una nueva tabla denominada customer_groups e inserta algunas filas en la tabla:

CREATE TABLE sales.customer_groups (
    group_id INT PRIMARY KEY IDENTITY,
    group_name VARCHAR (50) NOT NULL
);
 
INSERT INTO sales.customer_groups (group_name)
VALUES
    (Estrada Web Group),
    ('Third Party'),
    ('One time');

Para eliminar todas las filas de la tabla customer_groups, se utiliza la declaración DELETE de la siguiente manera:

DELETE FROM sales.customer_groups;

Además de la declaración DELETE FROM, se puede usar la declaración TRUNCATE TABLE para eliminar todas las filas de una tabla.

TRUNCATE TABLE

A continuación se ilustra la sintaxis de la sentencia TRUNCATE TABLE:

TRUNCATE TABLE [database_name.][schema_name.]table_name;

En esta sintaxis, primero se especifica el nombre de la tabla de la que se desea eliminar todas las filas. En segundo lugar, schema_name es el nombre del esquema en la base de datos en la que se creó la tabla. El nombre de la base de datos es opcional. Si lo omite, la declaración eliminará la información de la tabla en la base de datos actualmente conectado.

Las siguientes declaraciones primero insertan algunas filas en la tabla customer_groups y luego eliminan todas las filas usando la declaración TRUNCATE TABLE:

INSERT INTO sales.customer_groups (group_name)
VALUES
    ('Estrada Web Group'),
    ('Third Party'),
    ('One time');  
 
TRUNCATE TABLE sales.customer_groups;

TRUNCATE TABLE es similar a la declaración DELETE sin una cláusula WHERE. Sin embargo, la declaración TRUNCATE se ejecuta más rápido y utiliza menos recursos del sistema y del registro de transacciones.

TRUNCATE TABLE vs. DELETE

TRUNCATE TABLE tiene las siguientes ventajas sobre la instrucción DELETE:

1) Usar menos registro de transacciones
La declaración DELETE elimina las filas de una en una e inserta una entrada en el registro de transacciones para cada fila eliminada. Por otro lado, la declaración TRUNCATE TABLE elimina los datos desasignando las páginas de datos utilizadas para almacenar los datos de la tabla e inserta solo las desasignaciones de página en los registros de transacciones.
 
2) Usa menos candados
Cuando la instrucción DELETE se ejecuta mediante un bloqueo de fila, cada fila de la tabla se bloquea para su eliminación. TRUNCATE TABLE bloquea la tabla y las páginas, no cada fila.
 
3) Restablecimiento de identidad
Si la tabla que se va a truncar tiene una columna de identidad, el contador de esa columna se restablece al valor inicial cuando la sentencia TRUNCATE TABLE elimina los datos, pero no así con la sentencia DELETE.
 
En este tutorial, aprendiste a usar la declaración TRUNCATE TABLE para eliminar todas las filas de una tabla de manera rápida y eficiente.

 

Compartir artículo:

Más artículos geniales

¿Qué es SQL Like y para qué sirve?

¿Qué es SQL Like y para qué sirve?

En este tutorial, aprenderás a usar el operador LIKE de SQL Server para verificar si una cadena de caracteres coincide con un patrón especificado.

Ver artículo completo
¿Cómo agregar una columna a una tabla en SQL?

¿Cómo agregar una columna a una tabla en SQL?

En este post veremos cómo agregar, eliminar y cambiar columnas a una tabla en SQL Server. ¿Cómo agregar una columna a una tabla existente en SQL Server?

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