sql 表重建後數據恢復實例

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-》你要是插入語句就出來了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章