Truncate Table SQL: Elimina registro de una tabla

En SQL Server, el comando Truncate Table SQL permite eliminar toda la información de una tabla sin eliminar la propia tabla. En otras palabras, permite purgar la mesa. Esta instrucción difiere del comando DROP, que está destinado a eliminar los datos y la tabla que los contiene.

Nota: la instrucción TRUNCATE es similar a la instrucción DELETE sin utilizar WHERE.

Entre las pequeñas diferencias, Truncate Table sql es, sin embargo, más rápido y utiliza menos recursos. Una de las razones de estas ganancias de rendimiento es que la consulta no indicará el número de registros eliminados y no habrá registro de los cambios en el registro.

Sintaxis Truncate Table SQL 

Esta instrucción se utiliza en una consulta SQL Server similar a la siguiente:

TRUNCATE TABLE Nombre_tabla;

TRUNCATE TABLE Es el comando SQL en sí mismo, y Nombre_tabladebe ser el nombre de su tabla ya existente la cual desea vaciar. por cierto, agrega un punto y coma al final.

Ejemplo con el comando Truncate Table SQL

Para mostrar un ejemplo concreto del uso de esta orden, podemos imaginar un sistema informático que contiene la lista de suministros de una empresa. Estos datos simplemente se almacenarían en una tabla de «suministro».

Tabla «empleado»:

sql-truncate-table

Puede eliminar todos los datos de esta tabla mediante la siguiente consulta:

TRUNCATE TABLE `empleado`

Una vez ejecutada la consulta, la tabla ya no contendrá ningún registro. En otras palabras, todas las filas de la tabla presentada anteriormente se habrán eliminado.

Además de eliminar datos, es posible que desee restablecer los valores en la columna de identidad utilizando la RESTART IDENTITY opción como esta:

TRUNCATE TABLE table_name
RESTART IDENTITY;

Por ejemplo, la siguiente declaración elimina todas las filas de la tabla empleado y restablece la secuencia asociada con la  empleado_id:

TRUNCATE TABLE empleado
CONTINUE IDENTITY;

De forma predeterminada, la instrucción TRUNCATE TABLE SQL utiliza la opción CONTINUE IDENTITY . Esta opción básicamente no reinicia el valor en secuencia asociado con la columna en la tabla.

Eliminar todos los datos de varias tablas con truncate table

Si desea eliminar toda la información de varias tablas a la vez, separe cada tabla con una coma (,) de la siguiente manera:

TRUNCATE TABLE 
    table_name1, 
    table_name2,
    ...;

Ejemplo, si aplicamos el comando con las tablas inventario y negocio:

TRUNCATE TABLE inventario, negocio;

Eliminar datos de una tabla que tiene referencias de clave externa

En la práctica, la tabla que desea truncar a menudo tiene  referencias de clave externa de otras tablas que no se enumeran en la declaración  TRUNCATE TABLE SQL .

De forma predeterminada, la declaración  TRUNCATE TABLE  no elimina ningún dato de la tabla que tenga referencias de clave externa. Para eliminar datos de dos tablas relacionadas, de una principal  y otra que tienen una clave externa que hace referencia a la tabla principal, para esto use la opción CASCADE en la declaración TRUNCATE TABLE  de la siguiente manera:

TRUNCATE TABLE table_name 
CASCADE; 

El siguiente ejemplo elimina datos de la tabla inventario y otras tablas que hacen referencia a la tabla inventario a través de restricciones de clave externa:

TRUNCATE TABLE inventario CASCADE; 

La opción CASCADE  debe usarse con mayor consideración o es posible que elimine datos de las tablas que no deseaba.

De forma predeterminada, la declaración TRUNCATE TABLE en SQL utiliza la RESTRICT opción que le impide truncar la tabla que tiene referencias de restricción de clave externa.

Diferencia entre TRUNCATE y DELETE

El comando TRUNCATE Table SQL resulta ser similar al comando DELETE, cuando se usa de la siguiente manera:

DELETE FROM `factura`

Hay, sin embargo, una diferencia notable: el comando TRUNCATE reinicializará el valor del autoincremento, si lo hay. Por lo tanto, es potencialmente necesario anotar el valor del incremento automático antes de hacer un TRUNCATE, especialmente si es necesario volver a indicar el valor anterior después de sobrescribir todos los datos.

Limitaciones TRUNCATE TABLE sql server

La instrucción TRUNCATE estará limitada durante los siguientes escenarios.

Cuando una tabla es referenciada por una restricción de clave externa, no es posible truncar la restricción. Sin embargo, puede truncar tablas donde se hace referencia a la misma tabla.
Cuando se incluye una tabla en una vista indizada, TRUNCATE no es posible
Si las tablas se incluyen en la replicación transaccional o de combinación, TRUNCATE no es posible

Resumen Truncate

  • Use la declaración TRUNCATE TABLE  para eliminar todos los datos de una tabla grande.
  • Utilice la opción CASCADE para eliminar los datos de una tabla principal y los de otras tablas que hacen referencia a la tabla principal a través de una restricción de clave externa.
  • El gatillo TRUNCATE TABLE no ON DELETE dispara. En su lugar, dispara BEFORE TRUNCATEAFTER TRUNCATE dispara.
  • La TRUNCATE TABLE declaración es segura para transacciones.

Deja un comentario