一个完整的差异备份和还原的T-SQL

 --清除环境,防止现有的数据影响测试结果 
exec  master..xp_cmdshell  'del  c:/text.bak' 
if  exists(select  *  from  master..sysdatabases  where  name='test') 
drop  database  test 

go   
--创建数据库 
create  database  test 
go 
--打开创建的数据 
use  test 
go   
--创建测试表 
create  table  t(a  int)   
--切换回master数据库 
use  master 
go 
--插入数据1 
insert  into  test..t  select  1 
go   
--然后进行一次完整备份 
backup  database  test  to  disk='c:/test.bak' 
go 
--插入数据2 
insert  into  test..t  select  2 
go 
--再进行一次完整备份 
backup  database  test  to  disk='c:/test.bak' 
go 
--插入3,4 
insert  into  test..t  select  3 
insert  into  test..t  select  4 
go 
--差异备份: 
backup  database  test  to  disk='c:/test.bak'  with  differential  
--删除数据库 
drop  database  test 
--还原数据库和差异数据库备份 
--还原完整备份 
restore  database  test  from  disk='c:/test.bak'  with  file=2,norecovery 
--还原差异备份的内容 
restore  database  test  from  disk='c:/test.bak'  with  file=3,recovery   
--显示恢复后的数据 
select  *  from  test..t 

 

注意下面的语句要放在一起执行  不然一条执行的话 数据库会显示为灰色 

--还原完整备份 
restore  database  test  from  disk='c:/test.bak'  with  file=2,norecovery 
--还原差异备份的内容 
restore  database  test  from  disk='c:/test.bak'  with  file=3,recovery   
--显示恢复后的数据 

 

FILE的理解

标识要还原的备份集。例如,file_number 为 1 表示备份媒体上的第一个备份集,file_number 为 2 表示第二个备份集。

 

select  backup_start_date  as  备份时间,position  as  备份号, 
case  type    when  'D'  then  '完整备份'  when  'I'  then  '差异备份'  end  as  备份类型   
from  msdb..backupset  where  database_name='test'   
and  media_set_id  in   
(select  distinct  media_set_id  from  msdb..backupmediafamily  where  physical_device_name='c:/test.bak') 
order  by  position 

<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值