[轉]SqlServer中Sql檢視儲存過程
SqlServer中Sql檢視儲存過程
( 一)利用Sql語句查詢資料庫中的所有表
1.利用sysobjects系統表
select * from sysobjects where xtype='U'
2,利用sys.tables目錄檢視
sys.tables目錄檢視,為每個表物件返回一行.
1 |
|
注意:sys.tables目錄檢視也只有在SQL SERVER2005及以上的版本中才能使用。
3,利用儲存過程sp_tables
1 |
|
(二)利用Sql語句查詢資料中的所有儲存過程
1.sysobjects系統表,在資料庫中建立的每個物件(例如約束、預設值、日誌、規則以及儲存過程)都有對應一行,我們在該表中篩選出xtype等於P的所有記錄,就為資料庫中的儲存過程了。
1 2 |
where type= 'P' |
2.sys.procedures目錄檢視,每個儲存過程都會在返回結果集中佔一行.
1 |
|
適用技巧:
Sql Server檢視所有儲存過程或檢視的位置及內容
1 2 3 |
|
從上面的SQL語句可以看出,主要用到了兩個 sys.all_objects 和 sys.sql_modules 兩個系統儲存過程,
其中 sys.all_objects 是 sql server 2012 版本中的系統檢視,在 更早期的 sql server 版本中,
應該用 sys.objects,同時,sys.objects 在 2012 中也是可以用的,只不過考慮到後續相容性,在新版本中,用新的 name 還是比較好。
Sys.All_Objects(sys.objects)
該檢視 很出名,是經常使用到的,主要是:顯示所有架構範圍內的使用者定義物件和系統物件的 UNION
主要欄位:
1. Name:物件名
2. Object_id:物件標識號,在資料中是唯一的
3. Principal_id :架構所有者ID
4. Parent_object_id:此物件所屬物件的ID,0 = 不是子物件
5. Type:物件型別,常用的型別有, AF = 聚合函式 P = SQL 儲存過程 V = 檢視 TT = 表型別 U = 表(使用者定義型別)
6. Type_desc:物件型別的說明
7. Create_date / Modify_date :建立日期 / 修改日期
8. is_ms_shipped:是否為 內部 SQL Server 組建所建立的物件,常用來判斷 是否是 系統內建或使用者自定義 的物件
Sys.Sql_Modules
對每個 SQL 語言定義的模組物件都返回一行。 型別為 P、RF、V、TR、FN、IF、TF 和 R 的物件均有關聯的 SQL 模組。
主要欄位:
1. Object_id:物件標識號,在資料中是唯一的
2. Definition:用於定義此模組的 SQL 文字