SQL中利用sql語句查詢數據庫中的所有表、存儲過程

( 一)利用Sql語句查詢數據庫中的所有表

1,利用sysobjects系統表
在這個表中,在數據庫中創建的每個對象(例如約束、默認值、日誌、規則以及存儲過程)都有對應一行,我們在該表中篩選出xtype等於U的所有記錄,就爲數據庫中的表了。
示例語句如下::

select * from sysobjects where xtype='U'

注意:在SQL SERVER2005中,出現了sys.objects目錄視圖來代替sysobjects系統表,我們在SQL SERVER2005及以後的版本中,可以使用sysobjects系統表與sys.objects目錄視圖的任意對象來查詢所有表。

2,利用sys.tables目錄視圖
sys.tables目錄視圖,爲每個表對象返回一行.
示例語句如下:
select * from sys.tables

注意:sys.tables目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。

3,利用存儲過程sp_tables
sp_tables存儲過程,可返回可在當前環境中查詢的對象列表。這代表可在FROM子句中出現的任何對象。
我們可以執行如下語句:
exec sp_tables

在結果集中篩選出所有TABLE_TYPE等於TABLE的記錄就是表信息了。

(二)利用Sql語句查詢數據中的所有存儲過程

1,利用sysobjects系統表
在這個表中,在數據庫中創建的每個對象(例如約束、默認值、日誌、規則以及存儲過程)都有對應一行,我們在該表中篩選出xtype等於P的所有記錄,就爲數據庫中的存儲過程了。
示例語句如下:

select * from sysobjects where xtype='P'

注意:在SQL SERVER2005中,出現了sys.objects目錄視圖來代替sysobjects系統表,我們在SQL SERVER2005及以後的版本中,可以使用sysobjects系統表與sys.objects目錄視圖的任意對象來查詢所有存儲過程。

但在sys.objects中,xtype列已經被type列代替,也就是說,在SQL SERVER2005及以後的版中可以使用以下代碼來查詢數據庫中所有存儲過程。
select * from sys.objects where type='P'

2,利用sys.procedures目錄視圖
sys.procedures目錄視圖,每個存儲過程都會在返回結果集中佔一行.
示例語句如下:
select * from sys.procedures

注意:sys.procedures目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。

文章來源:.net學習網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章