国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

Sql Server之旅——第一站 那些給我們帶來福利的系統(tǒng)視圖

2024-08-31 00:54:58
字體:
供稿:網(wǎng)友
Sql Server之旅——第一站 那些給我們帶來福利的系統(tǒng)視圖

  

  本來想這個系列寫點什么好呢,后來想想大家作為程序員,用的最多的莫過于數(shù)據(jù)庫了,但是事實上很多像我這樣工作在一線的碼農(nóng),對sql

都一知半解,別談優(yōu)化和對數(shù)據(jù)庫底層的認識了,我也是這樣。。。

一:那些系統(tǒng)視圖

1. 系統(tǒng)視圖是干什么呢?

  從名字上看就知道,系統(tǒng)視圖嘛?猜的不錯的話,就是存放一些sqlserver系統(tǒng)的一些信息,很好,恭喜你,答對了。

2. 都定義在哪呢?

  為了讓你眼見為實,下面截圖看看,從截圖中你可以看到,不管是“系統(tǒng)數(shù)據(jù)庫”還是“用戶數(shù)據(jù)庫”都是有這些系統(tǒng)視圖的,而且一眼掃下去發(fā)

現(xiàn)連名字都一樣。

3.看看這些系統(tǒng)視圖都能帶給我什么福利?

Q1:我在維護一個系統(tǒng)的時候,我只知道有一個數(shù)據(jù)庫中,有一個表的字段叫 “state”,但我忘了是定義在那張表中?我該如

何找出來?

 A1: 這個簡單,在sqlserver里面提供了一個系統(tǒng)視圖叫“INFORMATION_SCHEMA.COLUMNS”,下面我們截圖看看。

  從這個系統(tǒng)視圖名字中的這個SCHEMA這個單詞可知,原來是一個保存表架構(gòu)的視圖,而且還有這個字段的“排位”,“默認值”這些特性,泥煤,

是不是有一種很爽的感覺???

Q2:我在C#代碼中看到了一個存儲過程名"CategoryInsert",我想看它的源碼,但是我的table中存儲過程有幾千個,總不能讓我

  一個個的去找吧,,,拜托在系統(tǒng)視圖中可有快捷的方法查看?

A2:so easy。。。告訴你吧,只有你想不到的,沒有系統(tǒng)視圖做不到,不就一個簡簡單單的看存儲過程代碼么?

   sys.sql_modules就可以幫你實現(xiàn)。

Q3:這種方法好是好,但是copy的definition字段是沒有格式化的。。。。大哥,上千行的sql哦。。。我特別想格式化的輸

  出怎么辦呀?謝謝了。

A3:確實如你所說,格式化輸出的話,系統(tǒng)View只能幫你到這了,不過天無絕人之路,你可以使用系統(tǒng)存儲過程,里面有一個

  神奇的sp_helptext,可以祝你實現(xiàn)夢想,不用謝。

  

  

二:對系統(tǒng)視圖的一些思考

  在上面的代碼中,我演示了兩個系統(tǒng)view,一個PRoc給我們帶來的福利,那么仔細看一看,你就會有兩個疑惑。。。。

1:系統(tǒng)View在哪定義的?

  這個問題問的真好,從文章開頭我們就知道,我的用戶庫MYPETSHOP是有很多系統(tǒng)view的,但是我真的沒有定義這些view呀,老天可以

給我作證,那問題就很神秘了,system view到底從何而來?這個問題你也只有問sqlserver團隊了,他們將system view都放入了一個隱藏

的resource數(shù)據(jù)庫,那這個數(shù)據(jù)庫在哪呢?我給你找到。

找到了之后,我現(xiàn)在繼續(xù)附加進來,如果你夠聰明的話,你不能直接加載它,否則會報進程正在使用中,原因我想你也知道。

解決方法也很簡單,我們做一份copy到E盤。然后附加這個copy就好了。

既然附加進來了,我現(xiàn)在的感覺就是迫不及待的去看一看,細心的你通過下面的截圖,我想你應該明白了些什么,這些view并不是在”系統(tǒng)視圖“

文件夾下面的,而是正真的作為用戶視圖。。。對不對。。。

2:系統(tǒng)view的數(shù)據(jù)源在何處?

這個也是很經(jīng)典的問題,既然是view,我想大家都明白,其實它就是虛表的意思,既然是虛表,那基礎(chǔ)表在何處?帶著這個問題我來翻一下

我的MYPETSHOP數(shù)據(jù)庫。

可以看到,上面的系統(tǒng)基表空空如也,黃鶴一去不復返,白云千載空悠悠。。。那更大的疑問來了,如果連基礎(chǔ)表都沒有,那在這個DB中的

system view到底是查誰呢?這不是大忽悠么???但是事實是真的沒有嗎?因為你沒看到不代表真的沒有,可以繼續(xù)用system view來祝我

們一臂之力,接下來用sys.objects一探究竟。。。

好了,大概就說這么多了,時候不早了,洗洗睡了。。。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广安市| 栖霞市| 喀什市| 深泽县| 公安县| 浠水县| 句容市| 巨鹿县| 宜城市| 巨鹿县| 彰武县| 永泰县| 长海县| 全南县| 宿迁市| 五常市| 武宁县| 清丰县| 临泉县| 新巴尔虎右旗| 玉环县| 周口市| 百色市| 铜山县| 犍为县| 图木舒克市| 西昌市| 东港市| 嘉兴市| 湖北省| 青龙| 古交市| 秭归县| 宿州市| 通化县| 满城县| 保山市| 辽宁省| 南江县| 诸城市| 波密县|