- [C#] Thông báo page Facebook Trang Lập Trình VB.NET, C# bị Hack
- [C#] Chia sẻ source code phần mềm đếm số trang tập tin file PDF
- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
Khôi phục dữ liệu trước thời điểm xóa nhầm sqlserver 2008
Hôm nay, mình xin hướng dẫn các bạn khôi phục dữ liệu lại trước thời điểm khi các bạn xóa nhầm một hay nhiều bảng nào đó trong cơ sở dữ liệu.
Làm việc với database là công việc thường xuyên đối với coder, nhưng một này nào đó, các bạn lỡ tay viết câu truy vấn delete thiếu điều kiện hay nhầm bảng table, lúc đó, dữ liệu mất sạch.
Dữ liệu hiện tại thì chỉ có backup ngày hôm qua, Bây giờ, các người sử dụng phần mềm bạn chắc chắn sẽ không truy cập được. Bây giờ, chắc chắn bạn đang rất lo lắng, chẳng biết xử lý như thế nào. Sếp mà biết được thì xong, chuẩn bị nhận lương rồi ra về :) hii.
Mình cũng đã từng trải qua, cái cảm giác này rồi, bị thằng bạn càm ràm cả ngày, nào là chầu nhậu, chầu nước... kính thưa các thứ. :)))
Bây giờ, mình sẽ làm một ví dụ để các bạn dễ hình dung.
- Đầu tiên mình sẽ tạo database tên SINHVIEN, và bảng table tbl_sinhvien(masv, tensv).
USE master
GO
IF DB_ID('SINHVIEN') IS NOT NULL DROP DATABASE SINHVIEN
GO
CREATE DATABASE SINHVIEN
GO
USE SINHVIEN
GO
CREATE TABLE dbo.tbl_sinhvien(masv INT IDENTITY, tensv NVARCHAR(50) )
GO
INSERT INTO dbo.tbl_sinhvien(tensv)
SELECT N'Nguyễn Thảo' UNION ALL
SELECT N'Cái Trí Minh' UNION ALL
SELECT N'Trần Đình Hoàng' UNION ALL
SELECT N'Võ Sơn Băng'
- Bây giờ, mình sẽ tiến hành backup toàn bộ database SINHVIEN.
BACKUP DATABASE SINHVIEN TO DISK='D:SINHVIEN.BAK' WITH INIT
- Mình tiếp tục tiến hành thêm dữ liệu mới, sau khi backup .
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Trần Đình Thành')
GO
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Đoàn Chính Thuần')
GO
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Trương Phi')
- Sau đó, do sơ xuất mình chạy nhầm câu lệnh sql delete
DELETE FROM TBL_SINHVIEN
- Đến đây, là dữ liệu của bạn đã mất sạch, giờ nếu mình khôi phục dữ liệu vừa backup vào thì ba dòng dữ liệu mình mới thêm vào sẽ không có. Các bạn đừng lo lắng, bây giờ mình cần làm đầu tiên là đóng database lại, để không cho ai có thể cập nhật dữ liệu vào. Bằng cách là chuyển sang chế độ SINGLE_USER.
ALTER DATABASE SINHVIEN SET SINGLE_USER WITH ROLLBACK IMMEDIATE
- Tiếp đến mình cần ghi lại thời điểm chính xác trước khi chạy câu lệnh xóa dữ liệu.
SELECT GETDATE()
- ví dụ, khi mình chạy nhầm câu lệnh xóa là thời điểm 2016-03-18 20:27:16.473, vậy mình cần khôi phục lại dữ liệu trước thời điểm đó. ví dụ: 2016-03-18 20:25:16.473
- Bây giờ mình tiếp tục backup log lại như sau:
BACKUP LOG SINHVIEN TO DISK='D:SINHVIEN.TRN' WITH INIT
+ Bây giờ, mình tiến hành khôi phục dữ liệu full backup
USER MASTER
GO
RESTORE DATABASE SINHVIEN FROM DISK='D:SINHVIEN.BAK' WITH NORECOVERY
- Tiến hành khôi phục lại backup log
RESTORE DATABASE SINHVIEN FROM DISK='D:SINHVIEN.TRN' WITH STOPAT='2016-03-18 20:25:16.473'
- Đến đây, là mình đã thành công.
Nhưng hiện tại database mình đang ở chế độ SINGLE_USER bây giờ mình sẽ chuyển lại sang chế độ MULTI_USER để mọi người có thể truy cập lại và cập nhật dữ liệu.
ALTER DATABSE SINHVIEN SET MULTI_USER
Các bạn có thể tham khảo video hướng dẫn:
Cám ơn các bạn đã xem bài viết. Hãy like and share giúp mình nha các bạn.
Các bạn có thể Đăng ký kênh Youtube của mình ở góc phải bên trên màn hình.
Mọi thắc mắc về bài viết các bạn có thể hỏi ở http://hoidap.laptrinhvb.net để được support.