前言
在進行資料庫開發與維護時,經常需要知道資料表、檢視表或預存程序最後的修改時間。這些資訊對於:
- 追蹤系統變更
- 問題排除
- 效能調校
- 版本控制
都非常重要。本文將介紹幾個實用的SQL查詢技巧,讓你輕鬆掌握資料庫物件的時間資訊。
查詢資料表與檢視表的修改時間
以下是查詢資料表與檢視表修改時間的SQL:
1 | SELECT [name] -- 物件名稱 |
查詢說明
sys.all_objects: SQL Server的系統檢視表,儲存所有資料庫物件的資訊type_desc: 物件類型描述- 'USER_TABLE': 使用者建立的資料表
- 'VIEW': 檢視表
ORDER BY modify_date DESC: 依修改時間降冪排序,最新的排在最前面
查詢預存程序的修改時間
如果要查詢預存程序的修改時間,可以使用以下查詢:
1 | SELECT [name] -- 預存程序名稱 |
查詢說明
type_desc = 'SQL_STORED_PROCEDURE': 只查詢SQL預存程序SUBSTRING([name], 1, 3) NOT IN ('sp_', 'dt_', 'xp_'):- 排除系統內建的預存程序
- 這些預存程序通常以sp_、dt_或xp_開頭
- 過濾後只顯示使用者建立的預存程序
實際應用範例
這些查詢在以下情況特別有用:
系統維護
- 追蹤最近被修改的物件
- 確認系統更新是否成功部署
問題排查
- 當系統發生異常時
- 可以快速檢查是否有物件被意外修改
效能調校
- 追蹤統計資料更新時間
- 檢查索引重建時間
版本控制
- 確認程式碼部署狀態
- 驗證物件是否為最新版本
注意事項
執行權限
- 需要有適當的資料庫權限才能查詢這些系統檢視表
- 建議使用具有db_owner或更高權限的帳號
效能考量
- 這些查詢通常執行很快
- 但在大型資料庫中,建議加上適當的WHERE條件限制範圍
時間準確性
- modify_date會在物件定義變更時更新
- 純資料異動不會影響此時間
結語
掌握這些查詢技巧,可以讓你的資料庫管理工作事半功倍。建議將這些查詢儲存為程式碼片段,需要時可以快速使用。
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 kyosora 筆記!
評論
