SQL Server Drop Table 表重建後數據恢復實例
工具:Lumigent? Log Explorer?
Version 3.1.1
下載地址:http://c1.good.gd/?FileId=174577
過程再現: 不小心執行了表重建語句,表原有的數據全部丟失,心急如焚,驚慌失措,惶恐不安,生不如死………。
/****** 對象: 表 [dbo].[TestNum_VX] 腳本日期: 2009-8-28 23:26:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TestNum_VX]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TestNum_VX]
GO
/****** 對象: 表 [dbo].[TestNum_VX] 腳本日期: 2009-8-28 23:26:44 ******/
CREATE TABLE [dbo].[TestNum_VX] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[AccNumId] [bigint] NOT NULL ,
[type] [int] NOT NULL ,
[Explain] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[EndDate] [datetime] NOT NULL ,
[createTime] [datetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TestNum_VX] WITH NOCHECK ADD
CONSTRAINT [PK_TestNum_VX] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TestNum_VX] ADD
CONSTRAINT [DF_TestNum_VX_Explain] DEFAULT ('') FOR [Explain],
CONSTRAINT [DF_TestNum_VX_EndDate] DEFAULT (getdate()) FOR [EndDate],
CONSTRAINT [DF_TestNum_VX_cteateTime] DEFAULT (getdate()) FOR [createTime]
GO
exec sp_addextendedproperty N'MS_Description', N'創建時間', N'user', N'dbo', N'table', N'TestNum_VX', N'column', N'createTime'
GO
exec sp_addextendedproperty N'MS_Description', N'測試截止時間', N'user', N'dbo', N'table', N'TestNum_VX', N'column', N'EndDate'
GO
exec sp_addextendedproperty N'MS_Description', N'類形說明', N'user', N'dbo', N'table', N'TestNum_VX', N'column', N'Explain'
GO
exec sp_addextendedproperty N'MS_Description', N'屬於哪種測試類型', N'user', N'dbo', N'table', N'TestNum_VX', N'column', N'type'
GO
解決過程:安裝Log Explorer 第三方數據恢復工具
--打開log explorer
依次如下操作:
點左邊:allach log file
-->設置:sql server ,login name ,password
-->點擊:connect
-->選擇相應的數據庫,選中use on-line log
-->點擊:attach 後再次確定
-->點擊左邊:salvage dropped/truncated data
-->輸入table:dbo.ta
輸入approximate time the table was dropped/truncated:
2008-08-06 16:00:00 (這兒自行修改)
condition:選擇table was droped
-->點擊:create
此時log explorer自動打一個文本文件,內容如下
create table [dbo].[TestNum_VX] ([id] int)
insert into [dbo].[TestNum_VX] ([id]) values (1)
…………
複製insert語句 在查詢分析器裏執行以下即可恢復數據
******* 但有的數據確還是恢復不了,怎麼辦……心急如焚,驚慌失措,惶恐不安,生不如死………。
解決過程:
安裝後打開log explorer file=>attach log file->選擇服務器和登陸方式->connect->
選擇數據庫->attach->左面對話框中browse->view log->就可以看到log記錄,
點擊“view ddl commands”裏面就有很多drop table 命令
點擊下面的“undo”按鈕是生成表結構的語句
點擊下面的“salvage”按鈕是生成插入語句的 注:(如果把表給重建了系統會自動生成這些用於恢復原有數據插入語句)
我按照時間 找到了我日誌中刪除表的語句,點中後salvage才顯示可用狀態,點擊保存-》提示是否查看-》yes-》你要是插入語句就出來了