日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL點滴17—使用數據庫引擎存儲過程,系統視圖

系統 2612 0
原文: SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

在開發過程中會遇到需要弄清楚這個數據庫什么時候建的,這個數據庫中有多少表,這個存儲過程長的什么樣子等等信息,今天把自己工作過程中經常用到的一些數據庫引擎存儲過程,系統視圖等等總結一下以備不時之用。下面的知識多是自己總結,有一些參考了MSDN。

sp_help

有時候想盡快查出數據庫對象的相關信息,這個存儲過程就很有用了。使用它可以查詢出整個數據庫中所有對象的相關信息。直接運行sp_help結果如下圖1,上面是數據庫對象,包含系統自定義的表,視圖等等,下面是自定義數據類型
SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖1

如果我只想找到某一中數據類型的長度,精度等信息可以運行sp_help datatypename,如下圖2

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖2

如果我想找出某一個表的相關信息可以運行sp_help tablename,如下圖3

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖3

如圖運行結果的第一個查出表基本信息,第二個查出所有的列,第三個查出主鍵信息,第四個表查出列的標識,第五個返回所在的文件組信息。

如果我想查出一個存儲過程的相關信息可以像上面一樣直接使用sp_help procname,如下圖4

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖4

這里需要注意有時候需要使用單引號將數據庫對象包含起來。第一個表查出存儲過程的名稱等信息,第二個查出參數信息。

sp_helptext

有時候我們需要查出存儲過程長的什么樣子的,雖然可以點擊Script Stored Procedure as,CREATE To,New Query Editor Window找到,如圖5

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖5

但是這樣顯得有點羅嗦,如果有很多的存儲過程我們不可能很快地點擊選中我們想要查的哪一個。如果使用sp_helptext procname就可以很快地找到這些信息,如圖6

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖6

如圖,默認是使用grid顯示文本,也可以使用文本格式,只要點擊 Result to text就可以顯示文本格式。如果你還是覺得這樣不爽,關鍵字沒有顏色,你可以選中所有文本復制到SQL文本編輯器中。同樣你也可以使用sp_helptext查出數據庫中的視圖,函數,自定義計算列等對象的文本內容。

sp_helpdb

一般我們拿到客戶的數據庫服務器端時候,我們首選要搞清楚這個服務器上有多少個數據庫,分別是那些用戶創建的等等信息,你也許會直接打開這個數據庫用鼠標點擊查看,但是如果有很多的數據庫就不那么方便了,這個時候直接運行sp_helpdb就很容易查出來了。如下圖7。

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖7

如圖查詢出了我的數據庫軟件中所有的數據庫信息。如果我想知道某一個數據庫的詳細信息,可以使用sp_helpdb dbname查詢,如圖8。

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖8

如圖第一個表查出這個數據庫的基本信息,第二個表查詢得到這個數據庫的數據庫文件信息等。其他還有很多的數據庫引擎存儲過程例如:

sp_helpconstraint可以查出當前數據庫中所遇的約束信息。

sp_helpextendedproc可以查詢所有的擴展存儲過程,以及所屬的dll的名稱,這個在上一個隨筆: SQL點滴15—在SQL Server 2008中調用C#程序 中提到過。

sp_helpfile和sp_helpdb dbname的效果差不多,查詢當前數據庫的數據庫文件信息。

sp_helpfilegroup返回當前數據庫的數據庫文件關聯的文件組的信息。

Sp_helpindex tablename返回表或視圖中的索引的信息。

Sp_helplanguage返回數據庫中安裝的語言信息。

Sp_helpserver顯示當前已經連接的所有服務器的信息。

Sp_helpsort返回服務器默認的排序規則。

Sys.objects

數據庫開發和application開發有些不同,沒有一個像CC,VSS,SVN一樣的管理工具來管理代碼,因為所有的代碼都存放在數據庫中,不要跟蹤。假設我們要等待數據庫設計人員建好表或存儲過程后導入數據,但是遲遲不見動靜,這時候我們就可以看看數據庫中所有的自定義對象,按照最后更新時間來排序。運行下面的語句:select * from sys.objects where type in('U','V','P') order by modify_date

這個語句查出數據庫中的所有的用戶表,視圖,存儲過程并按時間排序,這樣就可以看到別人最近添加,修改了那些數據庫對象。Sys.objects不包含觸發器,觸發器在sys.triggers中。類似的還有sys.tables,sys.views等等。

information_schema

如果我們想快速查詢在這個數據庫中是否包含address這樣的字樣的列,并查出它在那個數據庫中,那個表中,它的數據類型信息等,這時候使用information_schema這個架構信息就很有用了,如下圖9。

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識

圖9

相同的在information_schema這個架構中還有很多的信息例如:

information_schema.tables返回表信息,

information_schema.check_constraints返回check約束信息,

information_schema.views返回視圖信息,

information_schema.routines返回存儲過程信息,還有很多這里不再列舉。

總之SQL Server數據庫提供了豐富的對象統計信息供我們使用,上面只是我經常用到的一部分,在這里拋磚引玉了。

SQL點滴17—使用數據庫引擎存儲過程,系統視圖查詢,DBA,BI開發人員必備基礎知識


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 镇巴县| 澄城县| 巧家县| 陇西县| 新乐市| 恩施市| 临颍县| 博客| 南安市| 绍兴县| 高陵县| 陆川县| 宜阳县| 特克斯县| 馆陶县| 陆丰市| 乌海市| 眉山市| 锦州市| 葫芦岛市| 吉首市| 桦南县| 株洲市| 新巴尔虎右旗| 阳曲县| 龙海市| 台山市| 苏尼特左旗| 双峰县| 安徽省| 东港市| 竹溪县| 古交市| 普洱| 兴山县| 桑植县| 辛集市| 马山县| 旬阳县| 米林县| 浦北县|