SQLServer无需Restore恢复误删表(一):恢复表结构
admin
2023-02-08 17:40:04
0

最近在研究《Microsoft SQL Server 2012 Internals》这本书,考虑到如何快速恢复误操作数据,如UPDATE、DELETE、TRUNCATE、DROP等操作。当数据库特别大的时候,通过还原数据库恢复误操作数据就会变得非常吃力。

那么如何在不restore database的情况下,快速进行数据恢复呢。这也将是本文将要提到的内容。


首先,简单了解下DROP TABLE操作的原理

1. 删除表的DDL

2. 删除数据页数据


通过分析Transaction Log可知,drop table并不会记录删除每一行数据的日志,drop table最终是通过标记该表数据页为可重写以表示释放空间(当空间不够时,会format掉这些数据页),

当数据库空间不足时,SQL Server可对这部分空间进行数据写入。


因此,我们想要在不restore database情况下恢复数据,就得确保drop table后表的数据页没有被format。一旦数据页被format,那么只能通过restore database方式进行恢复(目前尚未找到其他的恢复方法)。


以下为恢复表结构语句的实例

1. 建表

create table test_drop(
col1  tinyint,
col2  smallint,
col3  int identity(1,1),
col4  bigint,
col5  varchar(20),
col6  char(20),
col7  nvarchar(20),
col8  nchar(20),
col9  datetime,
col10 timestamp,
col11 uniqueidentifier,
col12 sysname,
col13 numeric(10,2),
col14 xml,
col15 money,
col16 text
)


2. 删除表

drop table test_drop


3. 恢复被删除的表结构语句

exec Recover_Dropped_Table_DDL_Porc 'test_drop'

SQLServer无需Restore恢复误删表(一):恢复表结构


生成恢复语句如下:

if object_id('dbo.test_drop') is not null
    print  'dbo.test_drop is existed'
else
create table dbo.test_drop(col1 tinyint null 
,col2 smallint null 
,col3 int identity 
,col4 bigint null 
,col5 varchar(20) collate SQL_Latin1_General_CP1_CI_AS null 
,col6 char(20) collate SQL_Latin1_General_CP1_CI_AS null 
,col7 nvarchar(20) collate SQL_Latin1_General_CP1_CI_AS null 
,col8 nchar(20) collate SQL_Latin1_General_CP1_CI_AS null 
,col9 datetime null 
,col10 timestamp not null 
,col11 uniqueidentifier null 
,col12 sysname collate SQL_Latin1_General_CP1_CI_AS not null 
,col13 numeric(10,2) null 
,col14 xml null 
,col15 money null 
,col16 text collate SQL_Latin1_General_CP1_CI_AS null 
)



相关内容

热门资讯

四预警齐发!台风“红霞”最新路... 今天(24日)6时,中央气象台发布高温黄色预警、暴雨蓝色预警、强对流天气蓝色预警、台风橙色预警。高温...
西门子滚筒洗衣机不通电 西门子滚筒洗衣机不通电洗衣机在很多种情况下都会造成这种现象,比如插座没电了、洗衣机电源插头与插座接触...
西门子洗衣机通电后没反应 1、可能是因为电脑板电源变压器损坏从而导致西门子洗衣机插上电源没有反应。2、可能是因为电源线及插头有...
西门子洗衣机能通电但不工作 1、可能是因为西门子洗衣机的电脑板电源变压器损坏从而导致的结果。2、可能是因为西门子洗衣机的电源线及...
悦康智能马桶盖故障维修 喷水故障。马桶盖不喷水,需检查水管是否坏了,如水管有问题则需去维修点维修;烘干故障。如果清洗和照明都...
原创 v... 随着新机精准定位,新版本越来越多,倾向于不同方面,比如小屏幕、机身轻薄、长续航等,与市场需求相同。大...
中国数学家王虹、邓煜获得菲尔兹... 北京时间2026年7月23日晚,国际数学家开幕式上,中国数学家、北京大学数学系毕业生王虹、邓煜双双获...
短剧演员,开始“卖脸” 6月下旬的一个下午,演员王源凯参加了一部短剧和一个广告项目的面试。这是今年以来,他为数不多的面试机会...
专访王虹:从北大数学系曾经的“... “获奖挺好的。”王虹说话慢慢的,随后话锋一转,带着自嘲式的笑意,“但是题该做不出来,还是做不出来。”...