整理 SQL Server 2000/2005/2008 DBA 日常運維最常用的 T-SQL 指令與系統預存程序,涵蓋版本查詢、資料庫大小、用戶權限、鎖死偵測、日誌縮減、效能分析、損壞修復等實戰場景,可直接收藏備查。
SELECT @@VERSION (對照 SP 版本:8.00.194=RTM, 384=SP1, 532=SP2, 760=SP3, 2039=SP4)EXEC master..xp_msversp_configureSELECT CONVERT(VARCHAR(30), login_time, 120) FROM master..sysprocesses WHERE spid = 1PRINT @@SERVERNAME; PRINT @@SERVICENAMEsp_helpdbsp_renamedb 'old', 'new'sp_spaceused @objname / 更詳細 SP_NChelpindex @objnamesp_toptables (預設 50)sp_helpindex @objname (Clustered 索引物理排序、空間較小;高頻 DML 建議 Non-clustered + 預設 fillfactor)sp_helpconstraint @objnamesp_helploginssp_helpsrvrolemembersp_change_users_login 'Auto_Fix', 'user' 或自訂 fix_orphan_usersp_changeobjectowner 'obj', 'newowner'sp_help_revlogin (非內建,需下載微軟腳本)sp_helprotectsp_helplinkedsrvloginsp_helpremoteloginUSE db; sp_stored_proceduressp_helptext 'proc_name'SELECT DISTINCT OBJECT_NAME(id) FROM syscomments WHERE text LIKE '%str%'CREATE PROC ... WITH ENCRYPTION AS ...;解密可用第三方 sp_decryptsp_who / 僅作用中:sp_who 'active'sp_lock (spid 1-50 為系統,>50 為用戶)DBCC INPUTBUFFER(spid) / 推薦強化版 sp_who3sp_who_lock (本文稍後提供完整建立腳本)-- 查看所有 DB 記錄大小 DBCC SQLPERF(LOGSPACE) -- 簡單復原模式縮減記錄 (單位 MB) BACKUP LOG db_name WITH NO_LOG DBCC SHRINKFILE (db_name_log, 5)
SET STATISTICS TIME ON/OFF SET STATISTICS IO ON/OFF -- 圖形化執行計畫: Ctrl+L 或工具列圖示 SET SHOWPLAN_ALL ON/OFF SET SHOWPLAN_TEXT ON/OFF SET STATISTICS PROFILE ON/OFF
ALTER DATABASE [db] SET SINGLE_USER
-- 修復單表 (允許資料遺失)
DBCC CHECKTABLE('table', REPAIR_ALLOW_DATA_LOSS)
-- 或修復整庫
DBCC CHECKDB('db', REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE [db] SET MULTI_USER
參數差異:REPAIR_FAST (輕微、無風險) → REPAIR_REBUILD (含重建索引、無遺失) → REPAIR_ALLOW_DATA_LOSS (最徹底、可能遺失資料)。修復後務必立即備份。
腳本已內建於本文 <xContent> 中,可直接部署至 master 資料庫使用。核心邏輯:識別阻塞鏈頭 (blocked=0 但被其他 spid blocked)、遞迴列出所有受阻進程、透過 DBCC INPUTBUFFER 取得執行語句、可選參數自動 KILL 阻塞源頭。