掌握核心系統存儲過程,可在查詢分析器中秒級完成元數據探索,無需翻閱文檔。
| 存儲過程 | 功能 | 示例 |
|---|---|---|
sp_databases | 列出所有數據庫及大小 | EXEC sp_databases |
sp_tables | 列出當前庫所有表/視圖/系統表 | USE Northwind; EXEC sp_tables |
sp_columns | 獲取指定表的列定義詳情 | EXEC sp_columns 'Orders' |
sp_help | 對象完整結構(索引/約束/觸發器/權限) | EXEC sp_help 'Orders' |
-- 所有用戶存儲過程
SELECT name, crdate FROM sysobjects WHERE type = 'P' AND category = 0 ORDER BY name
-- 所有用戶表
SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand("SalesByCategory", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder.DeriveParameters(cmd); // 關鍵:自動填充參數集合
foreach (SqlParameter p in cmd.Parameters)
{
Console.WriteLine($"{p.ParameterName} | {p.SqlDbType} | {p.Size} | {p.Direction} | {p.IsNullable}");
}
sp_helptext 'proc_name':查看存儲過程源碼sp_depends 'table_name':查詢對象依賴(誰引用了它)sp_spaceused 'table_name':表空間佔用統計sp_rename:重命名對象(含列/索引/約束)SQL Server 2005+ 推薦改用目錄視圖(sys.procedures、sys.parameters 等),但存儲過程在所有版本通用、輸出格式固定,仍是 DBA 日常巡檢的得力工具。