sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo recuperar datos de una tabla truncada

Si usa TRANSACTIONS en su código, TRUNCATE se puede revertir. Si no se usa ninguna transacción y se confirma la operación TRUNCATE, no se puede recuperar del archivo de registro. TRUNCATE es una operación DDL y no se registra en el archivo de registro.

DELETE y TRUNCATE se pueden deshacer cuando están rodeados por TRANSACTION si la sesión actual no está cerrada. Si TRUNCATE está escrito en Query Editor rodeado de TRANSACTION y si la sesión está cerrada, no se puede revertir, pero se puede revertir ELIMINAR.

USE tempdb
GO
-- Create Test Table
CREATE TABLE TruncateTest (ID INT)
INSERT INTO TruncateTest (ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
-- Check the data before truncate
SELECT * FROM TruncateTest
GO
-- Begin Transaction
BEGIN TRAN
-- Truncate Table
TRUNCATE TABLE TruncateTest
GO
-- Check the data after truncate
SELECT * FROM TruncateTest
GO
-- Rollback Transaction
ROLLBACK TRAN
GO
-- Check the data after Rollback
SELECT * FROM TruncateTest
GO
-- Clean up
DROP TABLE TruncateTest
GO