RE:RECUPERAR DATOS DE UNA TABLA SQL 2000
Christian
Gracias por darme la oportunidad de consultar la duda, que sinceramente a mi tambien me salto, esto dice el BOL:
La instrucción TRUNCATE TABLE es un método rápido y eficiente para eliminar todas las filas de una tabla. TRUNCATE TABLE es equivalente a la instrucción DELETE sin una cláusula WHERE. Sin embargo, TRUNCATE TABLE es más rápida y utiliza menos recursos de registro de sistema y de transacciones.
En comparación con la instrucción DELETE, TRUNCATE TABLE ofrece las siguientes ventajas:
Utiliza menos espacio de registro de transacciones.
La instrucción DELETE quita una a una las filas y graba una entrada en el registro de transacciones por cada fila eliminada. TRUNCATE TABLE quita los datos al cancelar la asignación de las páginas de datos utilizadas para almacenar los datos de la tabla y sólo registra la página de asignaciones anuladas en el registro de transacciones.
Suele utilizar menos bloqueos.
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 siempre bloquea la tabla y la página pero no cada fila.
Sin excepción, las páginas vacías permanecen en la tabla.
Después de ejecutar una instrucción DELETE, la tabla todavía puede contener páginas vacías. Por ejemplo, las páginas vacías de un montón no se pueden desasignar sin por lo menos un bloqueo de tabla exclusivo (LCK_M_X). Si la operación de eliminación no utiliza un bloqueo de tabla, la tabla (montón) contendrá muchas páginas vacías. Para los índices, la operación de eliminación puede dejar páginas vacías, aunque éstas se desasignarán rápidamente por medio de un proceso de limpieza en segundo plano.
----------------------------------------------------------------------------------------------------------
Si entiendo bien, no importa si se hace DELETE o TRUNCATE, ambas utilizan el LOG DE TRANSACCIONES, ¿cierto?