Buscar..


Introducción

La instrucción TRUNCATE elimina todos los datos de una tabla. Esto es similar a BORRAR sin filtro, pero, dependiendo del software de la base de datos, tiene ciertas restricciones y optimizaciones.

Sintaxis

  • TRUNCATE TABLE table_name;

Observaciones

TRUNCATE es un comando DDL (lenguaje de definición de datos), y como tal, hay diferencias significativas entre él y DELETE (un lenguaje de manipulación de datos, DML, comando). Si bien TRUNCATE puede ser un medio para eliminar rápidamente grandes volúmenes de registros de una base de datos, estas diferencias deben entenderse para decidir si el uso de un comando TRUNCATE es adecuado para su situación particular.

  • TRUNCATE es una operación de página de datos. Por lo tanto, los activadores de DML (ON DELETE) asociados con la tabla no se activarán cuando realice una operación TRUNCATE. Si bien esto ahorrará una gran cantidad de tiempo para operaciones masivas de eliminación, sin embargo, es posible que deba eliminar manualmente los datos relacionados.
  • TRUNCATE liberará el espacio en disco utilizado por las filas eliminadas, DELETE liberará espacio
  • Si la tabla a truncar utiliza columnas de identidad (MS SQL Server), entonces el comando TRUNCATE restablece la semilla. Esto puede resultar en problemas de integridad referencial.
  • Dependiendo de los roles de seguridad existentes y la variante de SQL en uso, es posible que no tenga los permisos necesarios para ejecutar un comando TRUNCATE

Eliminar todas las filas de la tabla Empleado

TRUNCATE TABLE Employee;

El uso de la tabla truncada suele ser mejor que el uso de BORRAR TABLA ya que ignora todos los índices y activadores y solo elimina todo.

Eliminar tabla es una operación basada en filas, esto significa que cada fila se elimina. La tabla truncada es una operación de página de datos, se reasigna toda la página de datos. Si tiene una tabla con un millón de filas, será mucho más rápido truncar la tabla que utilizar una declaración de eliminación de tabla.

Si bien podemos eliminar filas específicas con BORRAR, no podemos TRUNCAR filas específicas, solo podemos TRUNCAR todos los registros a la vez. Eliminar todas las filas y luego insertar un nuevo registro continuará agregando el valor de la Clave primaria incrementada automáticamente del valor insertado anteriormente, donde, como Truncar, el valor de la clave primaria Incremental automática también se restablecerá y comenzará desde 1.

Tenga en cuenta que al truncar la tabla, no debe haber claves externas , de lo contrario obtendrá un error.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow