SQL Server Model 數(shù)據(jù)庫(kù)描述
此文章主要向大家介紹的是給SQL Server Model 數(shù)據(jù)庫(kù)上適當(dāng)?shù)脑黾右恍┳兓膶?shí)際操作步驟,我們大家都知道每個(gè)SQL Server數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用服務(wù)器上都安裝了許多數(shù)據(jù)庫(kù)。為與E. F. Cood博士最近提出的規(guī)則保持一致。
與數(shù)據(jù)庫(kù)有關(guān)的信息必須應(yīng)用和您用來(lái)詢問(wèn)自己數(shù)據(jù)庫(kù)一樣的命令來(lái)加以利用。除將系統(tǒng)信息存儲(chǔ)在數(shù)據(jù)庫(kù)外,還有更好的方法實(shí)現(xiàn)這一目的嗎?
SQL Server上安裝了這些系統(tǒng)數(shù)據(jù)庫(kù):
Master:存儲(chǔ)所有其它數(shù)據(jù)庫(kù)的說(shuō)明,以及數(shù)據(jù)庫(kù)登錄和主系統(tǒng)表。
Model:作為您建立的每一個(gè)新數(shù)據(jù)庫(kù)的快照。
Msdb:存儲(chǔ)支持SQL Server Agent和SQL Server Management Studio(和以前的Enterprise Manager)的代碼和數(shù)據(jù)。
Tempdb:您在這個(gè)數(shù)據(jù)庫(kù)中建立臨時(shí)表(即名字以#或##開(kāi)頭的表)。另外,SQL ServerModel用這個(gè)數(shù)據(jù)庫(kù)記錄它自己的臨時(shí)表(即當(dāng)您用ORDER BY,SQL Server分類結(jié)果時(shí))。您每個(gè)小時(shí),甚至每分鐘都要對(duì)這個(gè)數(shù)據(jù)庫(kù)進(jìn)行無(wú)數(shù)次修改。
Mssqlresourcedb:存儲(chǔ)系統(tǒng)對(duì)象。除非您從后門進(jìn)入,否則這個(gè)數(shù)據(jù)庫(kù)保持隱藏和只讀狀態(tài)。它還是SQL Server內(nèi)部數(shù)據(jù)庫(kù)。
如果您在使用復(fù)制,SQL Server可能還安裝這個(gè)數(shù)據(jù)庫(kù):
Distribution:記錄與發(fā)行商、訂戶和服務(wù)器對(duì)象等有關(guān)的信息。
(注:決不要修改Master、Msdb或Mssqlresourcedb數(shù)據(jù)庫(kù)。)
現(xiàn)在我將注意力轉(zhuǎn)向Model數(shù)據(jù)庫(kù),對(duì)您建立的每個(gè)數(shù)據(jù)庫(kù)而言,它就像一個(gè)模板。因此基本上,您可以利用Model數(shù)據(jù)庫(kù)實(shí)現(xiàn)您想做的一些操作;而且您隨后建立的數(shù)據(jù)庫(kù)都保留您所做的改變。
假設(shè)您是一個(gè)建立YAFOES(另一個(gè)界面友好的訂單系統(tǒng))的獨(dú)立顧問(wèn)。細(xì)節(jié)方面總是各不相同,但通常它們都像是豬形撲滿:客戶、訂單、詳細(xì)資料、產(chǎn)品、支付等等。那么為什么不把這些表增加到Model數(shù)據(jù)庫(kù)中去呢?
我為Model數(shù)據(jù)庫(kù)做了個(gè)備份,然后在Model中建立幾個(gè)樣本表,假定我是一個(gè)YAFOES創(chuàng)建者。(注:在操作前,強(qiáng)烈建議您備份Model數(shù)據(jù)庫(kù)!)
我會(huì)運(yùn)行列表A中的腳本在Model數(shù)據(jù)庫(kù)建立一些簡(jiǎn)單的表。我還會(huì)增加一個(gè)視圖、UDF和存儲(chǔ)過(guò)程以及表和欄說(shuō)明和一兩個(gè)默認(rèn)值。
現(xiàn)在建立一個(gè)包含所有新數(shù)據(jù)庫(kù)對(duì)象的新數(shù)據(jù)庫(kù),就像我指定的一樣。出于各種原因,分別從數(shù)據(jù)庫(kù)Y和Z中建立數(shù)據(jù)庫(kù)X(銷售、營(yíng)銷、生產(chǎn)),但最終,應(yīng)用SSIS或Cognos或您選擇的任何工具,它們必須全部分解到企業(yè)視圖中。
我建議在Model數(shù)據(jù)庫(kù)中進(jìn)行這樣的結(jié)合。一旦您按照上面的說(shuō)明對(duì)Model數(shù)據(jù)庫(kù)進(jìn)行自定義(并滿足您的要求)后,您建立的每個(gè)數(shù)據(jù)庫(kù)都具有相同的表和欄定義。
這只是一個(gè)范例,但我相信它的意義遠(yuǎn)不止于此。我認(rèn)為獨(dú)立數(shù)據(jù)庫(kù)管理員傾向于建立這個(gè)樣本,而且我想單獨(dú)機(jī)構(gòu)也有這個(gè)想法。
這些經(jīng)歷讓我得出這樣的結(jié)論:Model數(shù)據(jù)庫(kù)是SQL ServerModel中最被忽略、最未被充分利用的功能。
【編輯推薦】
- SQL Server 分布式數(shù)據(jù)庫(kù)的2種不同系統(tǒng)
- 造成SQL Server查詢速度慢的10種原因
- 造成SQL Server查詢速度慢的原因與優(yōu)化
- 三種SQL Server 恢復(fù)模式的比較
- 正確實(shí)現(xiàn)SQL Server 自增標(biāo)志列清零