首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 系統存儲過程速查:庫、表、列、存儲過程元數據一網打盡

     編輯:關於SqlServer

掌握核心系統存儲過程,可在查詢分析器中秒級完成元數據探索,無需翻閱文檔。

四大必會存儲過程

存儲過程功能示例
sp_databases列出所有數據庫及大小EXEC sp_databases
sp_tables列出當前庫所有表/視圖/系統表USE Northwind; EXEC sp_tables
sp_columns獲取指定表的列定義詳情EXEC sp_columns 'Orders'
sp_help對象完整結構(索引/約束/觸發器/權限)EXEC sp_help 'Orders'

進階:sysobjects 直接查詢

-- 所有用戶存儲過程
SELECT name, crdate FROM sysobjects WHERE type = 'P' AND category = 0 ORDER BY name

-- 所有用戶表
SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name

ADO.NET 獲取存儲過程參數元數據

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 日常巡檢的得力工具。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved