2010-05-04 10 views

Respuesta

16

Debe buscar en google antes de preguntar.

Truncar

  1. Truncar elimina todas las referencias de base de datos.
  2. Rápido
  3. No hay entrada en el registro de transacciones.
  4. No se puede recuperar si se elimina una vez.
  5. Las referencias de página se borran. la columna de identidad
  6. Todos o ninguno
  7. se re-inicializado para sembrar
  8. Truncar es DDL

truncar la tabla tblName

Sin contidion se puede dar

Eliminar

  1. Las entradas se realizan en el registro de transacciones.
  2. recuperable
  3. lenta
  4. por registro basado eliminación
  5. referencias se mainained en la página
  6. identidad comienza a partir de su posición anterior
  7. LMD
Delete FROM tableName 

Ninguno de los dos efectos ningún estructura a la tabla. Todas las referencias deben ser retirados antes de realizar cualquiera de la operación, aunque no se aplica a eliminar cuando se utiliza con Cascade = true para borrar

+2

Derecha. Truncar es DDL, Eliminar es DML. – Konerak

+0

¿qué hay de las estructuras de la mesa? –

+0

no dude en ser nuevo en el servidor sql e incluso en el aprendiz. –

0

La diferencia entre truncado y borrar se enumeran a continuación:

+----------------------------------------+----------------------------------------------+ 
|    Truncate    |     Delete     | 
+----------------------------------------+----------------------------------------------+ 
| We can't Rollback after performing  | We can Rollback after delete.    | 
| Truncate.        |            | 
|          |            | 
| Example:        | Example:          | 
| BEGIN TRAN        | BEGIN TRAN         | 
| TRUNCATE TABLE tranTest    | DELETE FROM tranTest       | 
| SELECT * FROM tranTest     | SELECT * FROM tranTest      | 
| ROLLBACK        | ROLLBACK          | 
| SELECT * FROM tranTest     | SELECT * FROM tranTest      | 
+----------------------------------------+----------------------------------------------+ 
| Truncate reset identity of table.  | Truncate reset identity of table.   | 
+----------------------------------------+----------------------------------------------+ 
| It locks the entire table.    | It locks the table row.      | 
+----------------------------------------+----------------------------------------------+ 
| Its DDL(Data Definition Language)  | Its DML(Data Manipulation Language)   | 
| command.        | command.          | 
+----------------------------------------+----------------------------------------------+ 
| We can't use WHERE clause with it.  | We can use WHERE to filter data to delete. | 
+----------------------------------------+----------------------------------------------+ 
| Trigger is not fired while truncate. | Trigger is fired.       | 
+----------------------------------------+----------------------------------------------+ 
| Syntax :        | Syntax :          | 
| 1) TRUNCATE TABLE table_name   | 1) DELETE FROM table_name     | 
|          | 2) DELETE FROM table_name WHERE    | 
|          | example_column_id IN (1,2,3)    | 
+----------------------------------------+----------------------------------------------+ 
0

Mientras trabajamos en la base de datos, estamos utilizando Eliminar y Truncar sin conocer las diferencias entre ellos y cuándo usarlos. En este artículo discutiremos la diferencia entre Eliminar y Truncar en Sql.

Borrar Borrar es un comando DML. La instrucción de eliminación se ejecuta utilizando un bloqueo de fila, cada fila de la tabla se bloquea para su eliminación. Podemos especificar filtros en where cláusula. Elimina los datos especificados si existe una condición. Eliminar actividades un desencadenador porque la operación se registran de forma individual. Más lento que Truncar porque mantiene los registros Truncar Truncar es un comando DDL. La tabla de truncar siempre bloquea la tabla y la página, pero no cada fila. Como elimina todos los datos. No se puede usar la condición Where. Elimina todos los datos. La tabla truncada no puede activar un desencadenador porque la operación no registra las eliminaciones de fila individuales. Más rápido en rendimiento, ya que no guarda ningún registro. Nota Eliminar y Truncar ambos se pueden revertir cuando se usan con Transacción. Si Transacción está hecha, significa comprometida, no podemos revertir el comando Truncar de los archivos de registro, pero aún podemos revertir el comando Eliminar de los archivos de registro, ya que eliminar escritura los registra en el archivo de registro en caso de que sea necesario deshacerlos en el futuro a partir de archivos de registro .

Si tiene una restricción de clave externa que hace referencia a la tabla que está intentando truncar, esto no funcionará aunque la tabla de referencia no tenga datos. Esto se debe a que la comprobación de la clave externa se realiza con DDL en lugar de DML. Esto se puede evitar deshabilitando temporalmente la (s) restricción (es) de clave externa a la tabla.

Eliminar tabla es una operación registrada. Por lo tanto, la eliminación de cada fila se registra en el registro de transacciones, lo que hace que sea lenta. Truncar tabla también elimina todas las filas en una tabla, pero no registrará la eliminación de cada fila, sino que registra la desasignación de las páginas de datos de la tabla, lo que hace que sea más rápido.

~ Si accidentalmente eliminó todos los datos de la tabla utilizando Eliminar/Truncar. Puede deshacer la transacción comprometida. Restaure la última copia de seguridad y ejecute el registro de transacciones hasta el momento en que Eliminar/Truncar esté a punto de suceder.

Comprobar este artículo Rollback mesa después de Truncar comandos en SQL o

difference-between-delete-truncate-in

ver también when-to-use-truncate-and-delete-command

Cuestiones relacionadas