SQLServer2005数据库没有删除所有其他快照引发的问题及其解决方法

          SQLServer2005数据库没有删除所有其他快照引发的问题及其解决方法

问题重现及其解决方法如下:

--查询FYTEST数据库下TEST表中的内容

SELECT * FROM FYTEST.dbo.TEST;


--创建FYTEST数据库的第一个快照,快照为:FYTEST_DBSS1

CREATE DATABASE FYTEST_DBSS1 ON

(NAME = FYTEST,

 FILENAME = 'D:\FYTEST_DBSS1.SS')

AS SNAPSHOT OF FYTEST

GO

如下图:


--更新FYTEST数据库中TEST表的数据

UPDATE FYTEST.dbo.TEST SET levelNO='二级';

--查询更新后的数据

SELECT * FROM FYTEST.dbo.TEST;


--创建FYTEST数据库的第二个快照,快照为FYTEST_DBSS2

CREATE DATABASE FYTEST_DBSS2 ON

(NAME = FYTEST,

 FILENAME = 'D:\FYTEST_DBSS2.ss')

AS SNAPSHOT OF FYTEST

GO

--更新FYTEST数据库中TEST表的数据

UPDATE FYTEST.dbo.TEST SET levelNO='三级';

--查询更新后的数据

SELECT * FROM FYTEST.dbo.TEST;


--查看快照1中TEST表的内容

SELECT * FROM FYTEST_DBSS1.dbo.TEST;


--查看快照2中TEST表的内容

SELECT * FROM FYTEST_DBSS2.dbo.TEST;


--查看现在FYTSET数据库中TEST表的内容

SELECT * FROM FYTEST.dbo.TEST;


--从数据库快照中恢复数据库到快照创建的时刻

--使用master数据库

USE master

GO

RESTORE DATABASE FYTEST

FROM  DATABASE_SNAPSHOT='FYTEST_DBSS1'

GO


产生错误的原因是没有删除所有其他快照

解决方法:

方法一:手动删除其它快照

数据库快照-->找到要删除的快照-->右键-->删除即可。


方法二:使用代码删除其它快照

DROP DATABASE FYTEST_DBSS2

注意:这里的 FYTEST_DBSS2为要删除的快照名称

删除其他快照后,然后再重新执行下面语句

--从数据库快照中恢复数据库到快照1创建的时刻

--使用master数据库

USE master

GO

RESTORE DATABASE FYTEST

FROM  DATABASE_SNAPSHOT='FYTEST_DBSS1'

GO

发现执行成功!

--确认是否恢复了FYTEST数据库下的TEST表的内容

SELECT * FROM FYTEST.DBO.TEST;


可以看到FYTEST数据库下TEST表中的数据恢复了。

--删除数据库快照

DROP DATABASE FYTEST_DBSS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值