sql >> Database >  >> RDS >> Sqlserver

Hoe gegevens uit een ingekorte tabel te herstellen

Als u TRANSACTIES in uw code gebruikt, kan TRUNCATE worden teruggedraaid. Als er geen transactie wordt gebruikt en TRUNCATE-bewerking wordt uitgevoerd, kan deze niet worden opgehaald uit het logbestand. TRUNCATE is DDL-bewerking en het is niet ingelogd in het logbestand.

DELETE en TRUNCATE kunnen beide worden teruggedraaid wanneer ze worden omringd door TRANSACTIE als de huidige sessie niet is gesloten. Als TRUNCATE is geschreven in de Query-editor, omringd door TRANSACTION en als de sessie is gesloten, kan het niet worden teruggedraaid, maar DELETE kan wel worden teruggedraaid.

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. Kan JavaScript verbinding maken met MySQL?

  2. MySQL-injectie door LIKE-operator

  3. Grootte van de PostgreSQL-database neemt toe

  4. dubbele sleutelwaarde schendt unieke beperking - postgres-fout bij het maken van een sql-tabel van dask-dataframe