摘要:SQL - 實作資料庫快照集 (Snapshot) 之 新增 查詢 更新 刪除
在好久好久之前在上課時有上到過 Snapshot 資料庫快照,時光飛逝,我幾乎都快忘了它,今天就來重溫一下 資料庫快照集 (Snapshot) 之 新增、查詢、更新、刪除...
新增資料庫快照
--建立一個 Northwind 的資料庫快照集
USE [Northwind]
CREATE DATABASE Northwind_DB_20100120 ON
( NAME = Northwind, FILENAME =
'E:\Snapshot_Collection\Northwind_DB_20100120.ss' )
AS SNAPSHOT OF Northwind;
GO
--資料庫快照集的磁碟空間與實體檔案大小
USE [master]
SELECT DB_NAME(DBID) AS 'Snapshot 名稱', BytesOnDisk/1024.0 AS '實體檔案大小(KB)'
FROM fn_virtualfilestats(DB_ID(N'Northwind_DB_20100120'), NULL);
GO
--查詢 Northwind 檔案大小
USE [Northwind]
SELECT name N'資料庫名稱', physical_name N'檔案存放位址', size*8.0/1024 N'檔案大小(MB)'
FROM sys.database_files
GO
--檢視現有的資料庫資訊
USE [Northwind]
Select name as N'資料庫名稱', database_id as N'資料庫ID', create_date as N'建立時間'
From sys.Databases
檢視資料庫快照
Select * From Northwind_DB_20100120.dbo.Orders
V.S.
Select * From dbo.Orders
將資料庫還原成資料庫快照集
--針對 Orders 資料表 的 OrderID = 10248 更新 CustomerID,將原先的 VINET 改為 TOMSP
Update Orders
Set CustomerID = 'TOMSP'
Where OrderID = 10248
USE [master]
RESTORE DATABASE Northwind from DATABASE_SNAPSHOT = 'Northwind_DB_20100120';
GO
--查詢還原結果
USE[Northwind]
Select * From Northwind_DB_20100120.dbo.Orders
Select * From dbo.Orders
刪除資料庫快照集
Drop Database Northwind_DB_20100120
參考:
如何:建立資料庫快照集 (Transact-SQL)
如何:檢視資料庫快照集 (SQL Server Management Studio)
如何:將資料庫還原成資料庫快照集 (Transact-SQL)
如何:卸除資料庫快照集 (Transact-SQL)
sys.tables (Transact-SQL)
資料庫快照集 (Database Snapshot) 壞了、損毀,對於原本資料庫的影響?
Usage of SQL Server Database Snapshots
fn_virtualfilestats (Transact-SQL)
DB_NAME (Transact-SQL)
DB_ID (Transact-SQL)
sys.database_files (Transact-SQL)