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