[筆記]查詢資料庫目前是否 Onlin 狀態 sp_helpdb & sys.databases
參考這篇 SQL錯訊一問 " 資料庫 'ABC' 正在復原。請等候復原完成
查詢資料庫目前狀態可以使用 sp_helpdb 或是 sys.databases 。
當在 pubs 資料庫線上時,查詢效果如下:
sp_helpdb pubs
SELECT state,state_desc ,* FROM sys.databases
WHERE name = 'pubs'
當在 pubs 資料庫離線時,查詢效果如下:
sp_helpdb : 查詢回傳的 status 欄位是否為空
sys.databases : 查詢 state 欄位是否為 0 . (狀態值參考 這篇 )
但sys.databases 資料庫狀態 ONLINE 資料庫可供存取,主要檔案群組是在線上,雖然可能尚未完成復原的恢復階段。
結論:
單純查詢資料庫是否Online 則兩個方法都可以使用,若考量到恢復的問題,則要使用 sp_helpdb 方式。
參考:
SQL錯訊一問 " 資料庫 'ABC' 正在復原。請等候復原完成
sys.databases (Transact-SQL)
包含 Microsoft SQL Server 的執行個體中每個資料庫各一列。
sp_helpdb (Transact-SQL)
報告指定的資料庫或所有資料庫的相關資訊。
報告指定的資料庫或所有資料庫的相關資訊。