sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man återställer data från trunkerad tabell

Om du använder TRANSACTIONS i din kod kan TRUNCATE återställas. Om det inte finns någon transaktion används och TRUNCATE-operationen har begåtts, kan den inte hämtas från loggfilen. TRUNCATE är DDL-operation och den är inte inloggad i loggfilen.

DELETE och TRUNCATE kan båda återställas när de är omgivna av TRANSACTION om den aktuella sessionen inte är stängd. Om TRUNCATE skrivs i Query Editor omgiven av TRANSACTION och om sessionen är stängd kan den inte återställas men DELETE kan återställas.

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. Mycket enkel användarinmatning i django

  2. Datumskillnad i datum i Oracle och Java

  3. Bilduppladdning med Hibernate i PostgreSQL

  4. Får alla frågor som django körs på postgresql