在 SQL Server 2000 中,可使用 DATABASEPROPERTYEX() 系統函數查詢資料庫狀態,特別適合在還原作業後持續監控,直到資料庫上線可用。其 Status 屬性回傳值如下:
SELECT DATABASEPROPERTYEX('Northwind', 'Status');
/*
ONLINE = 資料庫可以查詢
OFFLINE = 資料庫顯式脫機
RESTORING = 資料庫正在恢復
RECOVERING = 資料庫正在恢復,還不能查詢
SUSPECT = 資料庫不能恢復
*/
舊版本可使用 DATABASEPROPERTY() 搭配 IsInRecovery 屬性:
SELECT DATABASEPROPERTY('Northwind', 'IsInRecovery');
/*
1 = TRUE (正在復原)
0 = FALSE (未在復原)
NULL = 輸入無效
*/
在還原腳本或作業中,建立迴圈持續檢查狀態,直到回傳 ONLINE 或 IsInRecovery = 0 才繼續後續步驟(如更新統計資料、重建索引、切換連線字串等)。若長時間停留在 RESTORING/RECOVERING 或出現 SUSPECT,需立即介入排查硬體、備份檔完整性或磁碟空間等問題。
善用 DATABASEPROPERTYEX 即時掌握還原進度,可將資料庫上線流程自動化,減少人工等待與誤判,提升營運連續性保障能力。