SQL Server 2005 引入資料庫快照,提供唯讀、交易一致性的資料庫靜態檢視,極適合報表查詢與災難復原。本文深入解析快照運作原理、建立語法與稀疏檔案特性。
-- 建立來源資料庫
USE master;
IF EXISTS (SELECT name FROM sysdatabases WHERE name = 'SourceDatabase')
DROP DATABASE SourceDatabase;
GO
CREATE DATABASE SourceDatabase
ON PRIMARY (
NAME = SourceDatabase_Data,
FILENAME = 'C:\SQLServer\SourceDatabase_Data.mdf'
) LOG ON (
NAME = SourceDatabase_Log,
FILENAME = 'C:\SQLServer\SourceDatabase_Log.ldf'
);
GO
-- 載入測試資料
USE SourceDatabase;
CREATE TABLE SalesHistory (
SaleID INT IDENTITY(1,1),
Product CHAR(150),
SaleDate DATETIME,
SalePrice MONEY
);
-- 插入 30,000 筆測試資料...
CREATE DATABASE SnapshotDatabase
ON (
NAME = 'SourceDatabase_Data',
FILENAME = 'C:\SQLServer\SnapshotDatabase.mdf'
) AS SNAPSHOT OF SourceDatabase;
關鍵差異:
AS SNAPSHOT OF SourceDatabase 指定來源資料庫。.mdf,但建議保持一致性。