--建立測試資料庫
create database db
go--對資料庫進行備份
backup database db to disk='c:\db.bak' with format
go--建立測試表
create table db.dbo.tb_test(id int)
--延時1秒鐘,再進行後面的操作(這是由於sql server的時間精度最大為百分之三秒,不延時的話,可能會導致還原到時間點的操作失敗)
waitfor delay '00:00:01'
go--假設我們現在誤操作刪除了 db.dbo.tb_test 這個表
drop table db.dbo.tb_test
--儲存刪除表的時間
select dt=getdate() into #
go--在刪除操作後,發現不應該刪除表 db.dbo.tb_test
--下面演示了如何恢復這個誤刪除的表 db.dbo.tb_test
--首先,備份事務日誌(使用事務日誌才能還原到指定的時間點)
backup log db to disk='c:\db_log.bak' with format
go--接下來,我們要先還原完全備份(還原日誌必須在還原完全備份的基礎上進行)
restore database db from disk='c:\db.bak' with replace,norecovery
go--將事務日誌還原到刪除操作前(這裡的時間對應上面的刪除時間,並比刪除時間略早
declare @dt datetime
select @dt=dateadd(ms,-20,dt) from # --獲取比表被刪除的時間略早的時間
restore log db from disk='c:\db_log.bak' with recovery,stopat=@dt
go--查詢一下,看表是否恢復
select * from db.dbo.tb_test
/*--結果:
id
-----------
(所影響的行數為 0 行)
--*/
--測試成功
go--最後刪除我們做的測試環境
drop database db
drop table #
恢復指定時間誤刪的資料
恢復指定時間誤刪的資料 如果刪除的資料要找回,只要不是truncate table,一般都可以閃回,只要快閃儲存器足夠,快閃儲存器不夠的話是查不了的。舉兩個例子 1.閃回三個小時前的資料 select from 表名 as of timestamp sysdate 3 24 where aae062...
查詢指定時間段的資料
一 select from searchdetails where searchdatetime between 2014 10 06 01 40 50.123 and 2014 12 07 23 12 and datepart hour,searchdatetime between 1 and 1...
MySQL之查詢指定時間的資料
今天select from 表名 where to days 時間欄位名 to days now 昨天 select from 表名 where to days now to days 時間欄位名 1 近7天select from 表名 where date sub curdate interval...