Diferencia entre ELIMINAR y TRUNCAR

DELETE es un comando DML (lenguaje de manipulación de datos) y se usa cuando especificamos la fila (tupla) que queremos eliminar o eliminar de la tabla o relación. El comando DELETE puede contener una cláusula WHERE. Si la cláusula WHERE se usa con el comando DELETE, entonces elimina o elimina solo aquellas filas (tuplas) que cumplen la condición; de lo contrario, elimina todas las tuplas (filas) de la tabla de manera predeterminada. Recuerde que DELETE registra las eliminaciones de filas.

Sintaxis: comando DELETE 

DELETE FROM TableName 
WHERE condition; 

TRUNCATE es un comando DDL (lenguaje de definición de datos) y se utiliza para eliminar todas las filas o tuplas de una tabla. A diferencia del comando DELETE, el comando TRUNCATE no contiene una cláusula WHERE. En el comando TRUNCATE, el registro de transacciones de cada página de datos eliminada no se registra. A diferencia del comando DELETE, el comando TRUNCATE es rápido. No podemos revertir los datos después de usar el comando TRUNCATE. 

Sintaxis: Comando TRUNCATE

TRUNCATE TABLE  TableName;The identity

Veamos que la diferencia entre los comandos DELETE y TRUNCATE es la siguiente: 

Borrar Truncar
El comando DELETE se usa para eliminar filas específicas (una o más). Mientras que este comando se usa para eliminar todas las filas de una tabla.
Es un comando DML (lenguaje de manipulación de datos). Si bien es un comando DDL (lenguaje de definición de datos).
Puede haber una cláusula WHERE en el comando DELETE para filtrar los registros. Si bien es posible que no haya una cláusula WHERE en el comando TRUNCATE.
En el comando DELETE, una tupla se bloquea antes de eliminarla. Mientras está en este comando, la página de datos se bloquea antes de eliminar los datos de la tabla.
La declaración DELETE elimina las filas de una en una y registra una entrada en el registro de transacciones para cada fila eliminada. TRUNCATE TABLE elimina los datos desasignando las páginas de datos utilizadas para almacenar los datos de la tabla y registra solo las desasignaciones de páginas en el registro de transacciones.
El comando DELETE es más lento que el comando TRUNCATE. Mientras que el comando TRUNCATE es más rápido que el comando DELETE.
Para usar Eliminar, necesita el permiso ELIMINAR en la tabla. Para usar Truncar en una tabla, necesitamos al menos el permiso ALTER en la tabla.
La identidad de la columna de menos conserva la identidad después de usar la instrucción DELETE en la tabla. Identidad, la columna se restablece a su valor inicial si la tabla contiene una columna de identidad.
La eliminación se puede utilizar con vistas indexadas. Truncar no se puede usar con vistas indexadas.
Este comando también puede activar el disparador. Este comando no activa el disparador.
La declaración DELETE ocupa más espacios de transacción que Truncar. La declaración truncada ocupa menos espacios de transacción que DELETE.

Publicación traducida automáticamente

Artículo escrito por MKS075 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *