Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana memulihkan data dari tabel terpotong

Jika Anda menggunakan TRANSAKSI dalam kode Anda, TRUNCATE dapat dibatalkan. Jika tidak ada transaksi yang digunakan dan operasi TRUNCATE dilakukan, transaksi tersebut tidak dapat diambil dari file log. TRUNCATE adalah operasi DDL dan tidak dicatat dalam file log.

DELETE dan TRUNCATE keduanya dapat dibatalkan ketika dikelilingi oleh TRANSAKSI jika sesi saat ini tidak ditutup. Jika TRUNCATE ditulis dalam Editor Kueri dikelilingi oleh TRANSACTION dan jika sesi ditutup, sesi tidak dapat dibatalkan tetapi DELETE dapat dibatalkan.

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. Sisipkan dinamis ke dalam pernyataan tabel variabel SQL Server

  2. Buat Query di SQL Server 2017

  3. Simpan beberapa nilai bit dalam satu kolom tabel

  4. sp_send_dbmail dieksekusi dari pekerjaan gagal dengan hasil kueri terlampir sebagai file

  5. Haruskah saya mendesain tabel dengan kunci utama varchar atau int?