sql >> Databáze >  >> RDS >> Sqlserver

Jak obnovit data z zkrácené tabulky

Pokud ve svém kódu použijete TRANSACTIONS, lze TRUNCATE vrátit zpět. Pokud není použita žádná transakce a je potvrzena operace TRUNCATE, nelze ji načíst ze souboru protokolu. TRUNCATE je operace DDL a není přihlášena do souboru protokolu.

DELETE a TRUNCATE oba mohou být vráceny zpět, když jsou obklopeny TRANSACTION, pokud aktuální relace není uzavřena. Pokud je TRUNCATE napsáno v Query Editor obklopeném TRANSACTION a pokud je relace uzavřena, nelze ji vrátit zpět, ale DELETE lze vrátit zpět.

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


  1. MySQL tabulka s pevným počtem řádků?

  2. Důležitost zpětného zaškrtnutí kolem názvu tabulky v dotazu MySQL

  3. Jak zabít běžící příkaz SELECT

  4. Jak naformátuji své dotazy Oracle tak, aby se sloupce nezalamovaly?