-- 版本詳情
SELECT @@VERSION;
-- 操作系統參數
EXEC master..xp_msver;
-- 實例配置
EXEC sp_configure; -- 顯示所有高級選項(需先開啟 show advanced options)
SELECT @@SERVERNAME AS ServerName, @@SERVICENAME AS InstanceName;
-- 啟動時間
SELECT sqlserver_start_time FROM sys.dm_os_sys_info; -- 2008+ 推薦
-- 老版本兼容
SELECT CONVERT(VARCHAR(30), login_time, 120)
FROM master..sysprocesses WHERE spid = 1;
-- 所有庫大小
EXEC sp_helpdb;
-- 重命名庫
EXEC sp_renamedb 'old_name', 'new_name';
-- 單庫對象大小
EXEC sp_spaceused 'TableName'; -- 表大小
EXEC sp_spaceused 'IndexName'; -- 索引大小(需在表上下文)
-- 最大 N 張表
EXEC sp_toptables @num = 20; -- 非系統存儲過程,可能需自建
-- 索引信息
EXEC sp_helpindex 'TableName'; -- 基礎信息
-- 詳細索引信息(自建 SP_NChelpindex 或查詢 sys.indexes/sys.partitions)
-- 約束信息
EXEC sp_helpconstraint 'TableName';
-- 存儲過程/函數列表
USE TargetDB;
EXEC sp_stored_procedures;
-- 查看源碼
EXEC sp_helptext 'proc_name';
-- 搜索包含關鍵字的對象
SELECT DISTINCT OBJECT_NAME(id)
FROM syscomments
WHERE text LIKE '%keyword%';
-- 加密創建
CREATE PROC secret_proc WITH ENCRYPTION AS SELECT 1;
-- 解密(需第三方工具或 DAC 連接查詢 sys.sysobjvalues)
-- 所有登錄信息
EXEC sp_helplogins;
-- 服務器角色成員
EXEC sp_helpsrvrolemember;
-- 修復孤立用戶(遷移後)
EXEC sp_change_users_login 'Report'; -- 查看孤立用戶
EXEC sp_change_users_login 'Auto_Fix', 'user', NULL, 'pwd'; -- 自動建登錄並映射
EXEC sp_change_users_login 'Update_One', 'user', 'user'; -- 映射現有登錄
-- 更改對象擁有者
EXEC sp_changeobjectowner 'schema.table', 'new_owner';
-- 當前會話/進程
EXEC sp_who; -- 全部
EXEC sp_who 'active'; -- 僅活躍
-- 鎖信息
EXEC sp_lock; -- spid > 50 為用戶進程
-- 進程執行的 SQL 文本
DBCC INPUTBUFFER (spid); -- 需 SA 權限
-- 推薦改進版 sp_who3(自帶 SQL 文本)
-- 死鎖檢查
EXEC sp_who_lock; -- 自建存儲過程
-- 簡單恢復模式收縮日志
BACKUP LOG DBName WITH NO_LOG; -- 2005/2008 僅支持,2008 R2+ 棄用
DBCC SHRINKFILE (DBName_Log, 500); -- 目標 500 MB
-- 完整恢復模式正確收縮流程
BACKUP LOG DBName TO DISK = '...trn'; -- 先備份日志
DBCC SHRINKFILE (DBName_Log, 500);
| 命令/設置 | 用途 | 輸出形式 |
|---|---|---|
SET STATISTICS TIME ON | 編譯/執行耗時 | Messages 窗口 |
SET STATISTICS IO ON | 邏輯/物理讀、掃描次數 | Messages 窗口 |
SET SHOWPLAN_ALL ON | 估計執行計劃(文本) | Grid |
SET SHOWPLAN_TEXT ON | 估計計劃(簡化文本) | Grid |
SET STATISTICS PROFILE ON | 實際執行計劃 + 統計 | Grid |
| SSMS Ctrl+L / 工具欄圖標 | 圖形化估計計劃 | 圖形 |
| SSMS Ctrl+M / 實際執行計劃 | 圖形化實際計劃 | 圖形 |
-- 單表修復(允許數據丟失)
ALTER DATABASE [ErrDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKTABLE ('ErrTable', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE [ErrDB] SET MULTI_USER;
-- 全庫修復
ALTER DATABASE [ErrDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ('ErrDB', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE [ErrDB] SET MULTI_USER;
修復級別: REPAIR_FAST(輕微、無數據損失)< REPAIR_REBUILD(重建索引、無損失)< REPAIR_ALLOW_DATA_LOSS(分配/取消分配頁、刪除損壞對象,可能丟數據)。
EXEC sp_helplinkedsrvlogin; -- 鏈接服務器登錄映射
EXEC sp_helpremotelogin; -- 遠端登錄信息