SQL Server 2005集成了很多新功能,其中一项为数据库快照功能,快照功能是数据库[源数据库]的只读、静态试图。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个数据库快照在事务上与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。本文将讲述如何演示创建数据库快照和自动创建数据库快照
首先,我们来模仿整个快照的创建过程
Step 1 创建数据库DEMO
Create Database demo on Primary
(Name ='demo_Data',
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data.Mdf',
Size=100MB,
MaxSize=200MB,
FILEGROWTH=10%)
Log on
(Name = 'demo_Log',
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Log.Ldf',
Size=30MB,
MaxSize=50MB,
FILEGROWTH=10%);

Figure 1 .创建DB
Step 2 创建表和数据
Use demo
go
Create table info (Id int, name varchar(100),cname varchar(100))
go
insert into info values (1,'longrujun','沧海笑一声')
insert into info values (2,'zengyu','无梨头')
insert into info values (3,'zhy','美女杀手')
insert into info values (4,'xiongfei','六煞')
insert into info values (5,'hanlei','酒鬼')
go
Figure 1 .创建DB
Step 2 创建表和数据
Use demo
go
Create table info (Id int, name varchar(100),cname varchar(100))
go
insert into info values (1,'longrujun','沧海笑一声')
insert into info values (2,'zengyu','无梨头')
insert into info values (3,'zhy','美女杀手')
insert into info values (4,'xiongfei','六煞')
insert into info values (5,'hanlei','酒鬼')
go

Fiugre 2.建立表info及插入数据
Step 3 创建快照
use master
go
Create Database demo_Snapshot1 on
(Name ='demo_Data,
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data.SS1')
AS SNAPSHOT of demo;
Go
此时Demo_Data.ss1快照产生如下图所示

Figure 3.创建快照

Fiugre 4.demo_Data.SS1
Step 4 快照测试:删除源DB中相关数据
Use demo
Go
Select * from info

Figure 5.演示数据
use demo
go
delete from info where id in (2,4)
go
源DB结果如下
Fiugre 2.建立表info及插入数据
Step 3 创建快照
use master
go
Create Database demo_Snapshot1 on
(Name ='demo_Data,
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data.SS1')
AS SNAPSHOT of demo;
Go
此时Demo_Data.ss1快照产生如下图所示

Figure 3.创建快照

Fiugre 4.demo_Data.SS1
Step 4 快照测试:删除源DB中相关数据
Use demo
Go
Select * from info

Figure 5.演示数据
use demo
go
delete from info where id in (2,4)
go
源DB结果如下
Figure 1 .创建DB
Step 2 创建表和数据
Use demo
go
Create table info (Id int, name varchar(100),cname varchar(100))
go
insert into info values (1,'longrujun','沧海笑一声')
insert into info values (2,'zengyu','无梨头')
insert into info values (3,'zhy','美女杀手')
insert into info values (4,'xiongfei','六煞')
insert into info values (5,'hanlei','酒鬼')
go
Figure 1 .创建DB
Step 2 创建表和数据
Use demo
go
Create table info (Id int, name varchar(100),cname varchar(100))
go
insert into info values (1,'longrujun','沧海笑一声')
insert into info values (2,'zengyu','无梨头')
insert into info values (3,'zhy','美女杀手')
insert into info values (4,'xiongfei','六煞')
insert into info values (5,'hanlei','酒鬼')
go

Fiugre 2.建立表info及插入数据
Step 3 创建快照
use master
go
Create Database demo_Snapshot1 on
(Name ='demo_Data,
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data.SS1')
AS SNAPSHOT of demo;
Go
此时Demo_Data.ss1快照产生如下图所示

Figure 3.创建快照

Fiugre 4.demo_Data.SS1
Step 4 快照测试:删除源DB中相关数据
Use demo
Go
Select * from info

Figure 5.演示数据
use demo
go
delete from info where id in (2,4)
go
源DB结果如下
Fiugre 2.建立表info及插入数据
Step 3 创建快照
use master
go
Create Database demo_Snapshot1 on
(Name ='demo_Data,
FileName= 'E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data.SS1')
AS SNAPSHOT of demo;
Go
此时Demo_Data.ss1快照产生如下图所示

Figure 3.创建快照

Fiugre 4.demo_Data.SS1
Step 4 快照测试:删除源DB中相关数据
Use demo
Go
Select * from info

Figure 5.演示数据
use demo
go
delete from info where id in (2,4)
go
源DB结果如下
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=913345