Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да възстановите данни от съкратена таблица

Ако използвате TRANSACTIONS във вашия код, TRUNCATE може да бъде върнат назад. Ако не се използва транзакция и е извършена операция TRUNCATE, тя не може да бъде извлечена от лог файла. TRUNCATE е DDL операция и не се записва в лог файла.

И двете функции DELETE и TRUNCATE могат да бъдат върнати назад, когато са заобиколени от TRANSACTION, ако текущата сесия не е затворена. Ако TRUNCATE е написано в редактора на заявки, заобиколено от TRANSACTION и ако сесията е затворена, тя не може да бъде върната, но DELETE може да бъде върната.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Генерирайте изрази CREATE INDEX в SQL Server

  2. Групово вмъкване с квалификатор на текст в SQL Server

  3. Как да намерите всички таблици с колона за идентичност в базата данни на SQL Server - SQL Server / T-SQL урок, част 45

  4. Извличане на връщане на записи в база данни с помощта на LinqToSql?

  5. Импортирайте CSV файл в SQL Server с помощта на SqlBulkCopy