Standard Edition (64-bit) 不支持 Database Snapshot。
| 功能 | Enterprise | Standard | Web | Express |
|---|---|---|---|---|
| 數據庫快照 | ✅ 支持 | ❌ 不支持 | ❌ 不支持 | ❌ 不支持 |
| 在線索引重建 | ✅ | ❌ | ❌ | ❌ |
| 數據壓縮 | ✅ | ❌ | ❌ | ❌ |
| 分區表/索引 | ✅ | ❌ | ❌ | ❌ |
| 鏡像見證 | ✅ | ✅ | ❌ | ❌ |
| AlwaysOn 可用性組 | ✅ | ❌ (僅基本可用性組) | ❌ | ❌ |
-- 完整備份
BACKUP DATABASE pxscj TO DISK = 'J:\Backup\pxscj_full.bak';
-- 還原為新數據庫 (模擬快照點)
RESTORE DATABASE pxscj_snapshot_20230101
FROM DISK = 'J:\Backup\pxscj_full.bak'
WITH MOVE 'pxscj' TO 'J:\Data\pxscj_snapshot_20230101.mdf',
MOVE 'pxscj_log' TO 'J:\Log\pxscj_snapshot_20230101.ldf',
REPLACE;
-- 導出關鍵表數據
bcp pxscj.dbo.key_table out J:\Export\key_table.dat -S . -T -c
-- 導入新數據庫
bcp pxscj_test.dbo.key_table in J:\Export\key_table.dat -S . -T -c
// 業務代碼中實現
public class SnapshotService {
public void createSnapshot(String tableName) {
String snapshotTable = tableName + "_snap_" + LocalDateTime.now().toString().replace(":","");
jdbcTemplate.execute("SELECT * INTO " + snapshotTable + " FROM " + tableName);
}
}
若業務強依賴快照功能 (如報表系統、測試環境快速重置):**升級至 Enterprise Edition** 是根本解決。評估授權成本 vs 開發維護替代方案成本。
SELECT @@VERSION;
-- 輸出包含 "Standard Edition" 確認版本