SQLServer可以針對資料庫的內容快速建立唯讀的檢視,一個資料庫可以存在多個快照集,每個資料庫快照集都會一直保存,直到被卸除為止。而快照集會擷取當下的唯獨資料庫,所以不需要指定交易紀錄,但在建立快照集時必須要包含所有來源資料庫的資料檔(mdf & ndf)。
建立快照集也有一些限制。
接下來我們來建立快照集吧!
查看資料庫test01.t1內容
use test01
go
select * from t1
go
確認邏輯檔案名稱
exec sp_helpdb test01
create database test01_snap on
(name='test01_Data01',filename='B:\Data\test01_Data1.ss'),
(name='test01_Data02',filename='B:\Data\test01_Data2.ss')
as snapshot of test01
go
新增一筆資料
use test01
go
insert into t1 values(2,'bill')
再次查看資料庫test01.t1內容
use test01
go
select * from t1
查看快照集test01_snap內容
資料為快照當下的內容,可以select查詢資料。
use test01_snap
go
select * from t1
go
注意:若要還原資料庫,資料庫的快照集只能有一個。
use master
go
restore database test01 from database_snapshot='test01_snap'
go
再看一次資料庫test01.t1的內容
use test
go
select * from t1
go