11 SQL Server 2000資料庫管理資料庫作為資料庫物件的儲存容器,對資料庫的管理就成了資料庫物件管理的基礎。下面我們來介紹如何建立、修改和刪除資料庫。
1.1.1 建立資料庫建立資料庫的方法主要有下面3種。(1) 使用嚮導建立資料庫選擇“開始”|“程式”| Microsoft SQL Server |“企業管理器”命令,啟動SQL Server企業管理器。首先,展開伺服器組,選擇並啟動要建立資料庫的伺服器。然後開啟“工具”下拉式功能表,選擇“嚮導”命令,則會出現“選擇嚮導”對話方塊,4-1所示。圖4-1 “選擇嚮導”對話方塊選擇“建立資料庫嚮導”選項,便可根據需要建立自己的資料庫了。(2) 使用企業管理器建立資料庫開啟SQL Server企業管理器,展開伺服器組,接著展開伺服器執行個體,右擊“資料庫”選項,彈出捷徑功能表,4-2所示。 圖4-2 使用企業管理器建立資料庫在捷徑功能表中選擇“建立資料庫”命令,開啟“資料庫屬性”對話方塊,4-3所示。在對話方塊中鍵入新資料庫的名稱。預設情況下,系統會自動使用資料庫名作為首碼來建立主要資料庫檔案和交易記錄檔。 圖4-3 “資料庫屬性”對話方塊在“常規”選項卡中,填寫資料庫名稱,然後,選擇“資料檔案”或“交易記錄”選項卡,對資料庫的相關屬性(如:檔案自動成長、最大檔案大小等)進行設定。設定完畢後,單擊“確定”按鈕,完成資料庫的建立。(3) 使用Transact-SQL語句中的CREATE DATABASE建立資料庫其文法形式如下:CREATE DATABASE
database_name[ON [PRIMARY] [<
filespec> [,…n] [,<
filegroupspec> [,…n]] ] [LOG ON {<
filespec> [,…n]}] [FOR RESTORE]<
filespec>::=([NAME=
logical_file_name,]FILENAME=‘
os_file_name’[,SIZE=
size][,MAXSIZE={
max_size|UNLIMITED}][,FILEGROWTH=
growth_increment] ) [,…n]<
filegroupspec>::=FILEGROUP
filegroup_name <
filespec> [,…n]其中各參數說明如下。 ● database_name:資料庫的名稱,最長為128個字元。● PRIMARY:該選項是一個關鍵字,指定主檔案組中的檔案。 ● LOG ON:指明交易記錄檔的明確定義。 ● NAME:指定資料庫的邏輯名稱,這是在SQL Server系統中使用的名稱,是資料庫在SQL Server中的標識符。● FILENAME:指定資料庫所在檔案的作業系統檔案名稱和路徑,該作業系統檔案名稱和NAME的邏輯名稱一一對應。● SIZE:指定資料庫的初始容量大小。 ● MAXSIZE:指定作業系統檔案可以增長到的最大大小。 ● FILEGROWTH:指定檔案每次增加容量的大小,當指定資料為0時,表示檔案不增長。例如,建立了一個Student資料庫,該資料庫的主要資料檔案邏輯名稱為Student_Data,物理檔案名稱為Student_Data.mdf,初始大小為10MB,最大大小為無限大,增長速度為10%。資料庫的記錄檔邏輯名稱為Student_Log,物理檔案名稱為Student_Log.ldf',初始大小為10MB,最大大小為20MB,增長速度為2MB。建立代碼如下:CREATE DATABASE Student ON PRIMARY (NAME = Student_Data, FILENAME = 'c:/program files/microsoft sql server/mssql/data/ Student_Data.mdf', SIZE = 10MB, FILEGROWTH = 10%)LOG ON (NAME = Student_Log, FILENAME = 'c:/program files/microsoft sql server/mssql/data Student_Log.ldf', SIZE = 10MB, MAXSIZE = 20, FILEGROWTH = 2)通過上述3種方法,最後都可以看到建立的資料庫出現在企業管理器的資料庫列表中,4-4所示。圖4-4 建立的資料庫Student
1.1.2 修改資料庫使用者在建立完資料庫之後,可以對其原始定義進行修改。更改資料庫包括兩個方面:擴充資料庫和收縮資料庫。(1) 擴充資料庫SQL Server 2000會根據建立資料庫時所定義的增長參數,自動擴充資料庫。擴充資料庫時,必須按至少1M的步長增加資料庫的大小,如果資料庫已經用完了分配給它的空間而不能自動成長,則會出現1105錯誤。擴充資料庫有如下兩種方式:使用企業管理器擴充資料庫和使用ALTER DATABASE語句擴充資料庫。使用企業管理器擴充資料庫時,開啟SQL Server企業管理器,展開伺服器組,然後展開要修改的資料庫所在的伺服器執行個體。展開“資料庫”檔案夾,右擊要擴充的資料庫,然後在彈出的捷徑功能表中選擇“屬性”命令,則出現“資料庫屬性”對話方塊,4-5所示。圖4-5 Student屬性在“資料庫屬性”對話方塊中,我們可以通過選擇不同的選項卡,對資料庫的各種擴充參數(如:檔案如何增長、檔案大小限制等)進行設定。設定完畢後,單擊“確定”按鈕。使用ALTER DATABASE語句擴充資料庫文法形式如下: ALTER DATABASE
databasename{ADD FILE<
filespec>[,…n] [TO FILEGROUP
filegroupname]|ADD LOG FILE <
filespec>[,…n]|REMOVE FILE
logical_file_name [WITH DELETE]|MODIFY FILE<
filespec>|MODIFY NAME=
new_databasename|ADD FILEGROUP
filegroup_name|REMOVE FILEGROUP
filegroup_name|MODIFY FILEGROUP
filegroup_name{
filegroup_property|name=
new_filegroup_name}| SET <
optionspec > [ ,...n ] [ WITH <
termination > ] | COLLATE <
collation_name > } 其中各參數說明如下。● database_name:要修改的資料庫名稱。 ● ADD FILE:添加資料檔案。● TO FILEGROUP:把要添加的資料檔案添加到指定的檔案組中。● ADD LOG FILE:添加交易記錄檔。● REMOVE FILE:從資料庫中刪除指定的檔案。● MODIFY FILE:修改資料檔案,可修改的選項包括FILENAME、SIZE、FILEG ROWTH和MAXSIZE。● MODIFY NAME:修改資料庫的名稱。● ADD FILEGROUP:添加檔案組。● REMOVE FILEGROUP:刪除檔案組以及該檔案組中的所有檔案。 ● MODIFY FILEGROUP:修改檔案組的名稱● SET:指定資料庫從一個狀態轉變為另一個狀態時,何時取消不完整的事務。● COLLATE:指定資料庫的定序。如果沒有指定定序,則將SQL Server執行個體的預設定序指派為資料庫的定序。例如,向資料庫Student中添加兩個5M大小的記錄檔,其建立代碼如下:ALTER DATABASE StudentADD LOG FILE(NAME=StudentLog2, FILENAME=’ c:/program files/microsoft sql server/mssql/data/ StudentLog2.ldf’ SIZE=5MB, MAXSIZE=100MB, FILEGROWTH=5MB),(NAME=StudentLog3, FILENAME=’ c:/program files/microsoft sql server/mssql/data/ StudentLog3.ldf’ SIZE=5MB, MAXSIZE=100MB, FILEGROWTH=5MB)(2) 收縮資料庫SQL Server 2000允許收縮資料庫中的每個檔案以刪除未使用的頁。資料和交易記錄檔可按設定的時間間隔自動收縮,整個收縮過程由系統控制並完成,所以,不會影響使用者對資料庫的使用。收縮資料庫有如下兩種方式:使用企業管理器收縮資料庫和使用DBCC SHRINK DATABASE語句壓縮資料庫。使用企業管理器收縮資料庫時,開啟SQL Server企業管理器,展開伺服器組,然後展開要修改的資料庫所在的伺服器執行個體。展開“資料庫”檔案夾,右擊要收縮的資料庫,在彈出的捷徑功能表中選擇“所有任務”|“收縮資料庫”命令,則出現“收縮資料庫”對話方塊,4-6所示。圖4-6 收縮資料庫-Student在“收縮資料庫”對話方塊中,對資料庫的收縮參數進行設定。讀者可以在“收縮後檔案中的最大可用空間”文字框中輸入收縮後資料庫的剩餘空間比例;選擇“在收縮前將頁移到檔案起始位置”複選框,可使釋放的檔案空間保留在資料庫檔案中,並將包含資料的頁也移到資料庫檔案的起始位置;選擇“根據本調度來收縮資料庫”複選框後,單擊“更改”按鈕,可建立或更改自動收縮資料庫的頻率和時間;單擊“檔案”按鈕,可收縮個別的資料庫檔案。設定完畢後,單擊“確定”按鈕。使用DBCC SHRINKDATABASE語句壓縮資料庫文法形式如下:DBCC SHRINKDATABSE(
database_name [ ,
target_percent][,{NOTRUNCATE | RUNCATEONLY}])其中各參數說明如下。● database_name:表示要壓縮的資料庫名稱。● target_percent:標識資料庫壓縮之後該資料庫的自由空間在資料庫整個尺寸中的百分比。● NOTRUNCATE:表示在資料庫檔案中保留所釋放的檔案空間。● TRUNCATEONLY:標識將資料檔案中的任何未使用的空間釋放給作業系統,這是預設情況。要注意的是,壓縮僅限於資料庫增長的部分,壓縮後的資料庫不能小於建立時的大小。因此,如果資料庫建立時的大小為10MB,後來增長到100MB,則該資料庫最小能夠收縮到10MB(假定已經刪除該資料庫中所有資料)。
1.1.3 刪除資料庫當不再需要資料庫,或如果它被移到另一資料庫或伺服器時,即可刪除該資料庫。資料庫刪除之後,檔案及其資料都從伺服器上的磁碟中刪除。一旦刪除資料庫,它即被永久刪除,並且不能進行檢索,除非使用以前的備份。讀者可以用兩種方法刪除資料庫。(1) 使用企業管理器刪除資料庫開啟SQL Server企業管理器,展開伺服器組,然後展開要修改的資料庫所在的伺服器執行個體。展開“資料庫”檔案夾,右擊要刪除的資料庫,在彈出的捷徑功能表中選擇“所有任務”|“刪除”命令,確認刪除。(2) 使用Transact-SQL語句中的DROP語句刪除資料庫DROP語句可以從SQL Server中一次刪除一個或多個資料庫。其文法如下:DROP DATABASE
database_name[,…n]其中,
database_name用於指定要刪除的資料庫名稱。例如,刪除Student資料庫的文法如下:DROP DATABASE Student也可以使用該命令同時刪除多個資料庫,只需在要刪除的資料庫名稱之間用逗號隔開即可。