《SQL Server數(shù)據(jù)庫系統(tǒng)基礎(chǔ)》課件004_第1頁
《SQL Server數(shù)據(jù)庫系統(tǒng)基礎(chǔ)》課件004_第2頁
《SQL Server數(shù)據(jù)庫系統(tǒng)基礎(chǔ)》課件004_第3頁
《SQL Server數(shù)據(jù)庫系統(tǒng)基礎(chǔ)》課件004_第4頁
《SQL Server數(shù)據(jù)庫系統(tǒng)基礎(chǔ)》課件004_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章SQLServer數(shù)據(jù)庫及其管理4.1SQLServer數(shù)據(jù)庫的存儲結(jié)構(gòu)和對象4.2系統(tǒng)數(shù)據(jù)庫和示例數(shù)據(jù)庫4.3數(shù)據(jù)庫的查看4.4數(shù)據(jù)庫的建立4.5數(shù)據(jù)庫的刪除4.6數(shù)據(jù)庫的移動4.7數(shù)據(jù)庫的其他操作4.8實(shí)戰(zhàn)訓(xùn)練小結(jié)思考題

數(shù)據(jù)庫是本課程的主要對象,那么數(shù)據(jù)庫是如何來操作和管理的呢?本章任務(wù):?認(rèn)識SQLServer數(shù)據(jù)庫,操作SQLServer數(shù)據(jù)庫,并掌握SQLServer數(shù)據(jù)庫的管理。

SQLServer數(shù)據(jù)庫是有組織的數(shù)據(jù)的集合。在SQLServer中,數(shù)據(jù)庫是作為一個整體集中管理的。在企業(yè)管理器中展開控制臺根目錄“服務(wù)器/數(shù)據(jù)庫”,選擇“數(shù)據(jù)庫”節(jié)點(diǎn),可以看到SQLServer2000系統(tǒng)中已有的數(shù)據(jù)庫,如圖4-1所示。在邏輯上,SQLServer數(shù)據(jù)庫由數(shù)據(jù)庫對象組成,數(shù)據(jù)庫是存放數(shù)據(jù)庫對象的容器;在物理上,SQLServer數(shù)據(jù)庫以文件的形式存放在物理磁盤上,數(shù)據(jù)庫中的對象沒有對應(yīng)的磁盤文件。圖4-1在企業(yè)管理器中看到的數(shù)據(jù)庫4.1SQLServer數(shù)據(jù)庫的存儲結(jié)構(gòu)和對象數(shù)據(jù)庫在磁盤上是以文件為單位存儲的,它由數(shù)據(jù)庫文件和事務(wù)日志文件組成。一個數(shù)據(jù)庫至少應(yīng)該包含一個數(shù)據(jù)庫文件和一個事務(wù)日志文件。

SQLServer2000將一個數(shù)據(jù)文件中的空間以塊的形式分配給表格和索引,每塊有64KB空間,叫做擴(kuò)展盤區(qū)。每個擴(kuò)展盤區(qū)由8個連續(xù)的“頁面”組成。擴(kuò)展盤區(qū)有兩種類型:由單個對象所擁有的是統(tǒng)一擴(kuò)展盤區(qū);由8個對象所共享的是混合擴(kuò)展盤區(qū)。

頁面是SQLServer2000中數(shù)據(jù)存儲的基本單元,每個頁面的大小為8KB。通常情況下,數(shù)據(jù)頁面以行的方式存儲數(shù)據(jù)。一行數(shù)據(jù)最多達(dá)8060字節(jié)。每個頁面的開始有96個字節(jié)的報(bào)頭,用于存儲系統(tǒng)信息。下面我們來看看數(shù)據(jù)庫文件是什么。4.1.1數(shù)據(jù)庫文件

SQLServer2000中的每個數(shù)據(jù)庫由多個操作系統(tǒng)中的文件所組成,數(shù)據(jù)庫的所有數(shù)據(jù)、對象和數(shù)據(jù)庫操作日志均存儲在這些操作系統(tǒng)文件中。根據(jù)這些文件的作用不同,可以將它們劃分為數(shù)據(jù)文件和日志文件,數(shù)據(jù)文件又分為主數(shù)據(jù)文件和輔助數(shù)據(jù)文件。1.主數(shù)據(jù)文件(PrimaryDatabaseFile)

數(shù)據(jù)文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件。一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能屬于一個數(shù)據(jù)庫。當(dāng)有多個數(shù)據(jù)文件時,有一個文件被定義為主數(shù)據(jù)文件(簡稱為主文件),其擴(kuò)展名為mdf。主數(shù)據(jù)文件用來存儲數(shù)據(jù)庫的啟動信息以及部分或全部數(shù)據(jù),是所有數(shù)據(jù)文件的起點(diǎn),包含指向其他數(shù)據(jù)文件的指針。一個數(shù)據(jù)庫必須有一個主數(shù)據(jù)文件,也只能有一個主數(shù)據(jù)文件。2.輔助數(shù)據(jù)文件(SecondaryDatabaseFile)

輔助數(shù)據(jù)文件用于存儲主數(shù)據(jù)文件中未存儲的剩余數(shù)據(jù)和數(shù)據(jù)庫對象。一個數(shù)據(jù)庫可以沒有輔助數(shù)據(jù)文件,也可以同時擁有多個輔助數(shù)據(jù)文件。使用輔助數(shù)據(jù)文件的優(yōu)點(diǎn)在于:可以在不同的物理磁盤上創(chuàng)建輔助數(shù)據(jù)文件并將數(shù)據(jù)存儲在文件中,這樣可以提高數(shù)據(jù)處理的效率。另外,當(dāng)數(shù)據(jù)龐大時,如果主數(shù)據(jù)文件的大小超過操作系統(tǒng)對單一文件大小的限制,則也需要使用輔助數(shù)據(jù)文件來存儲更多的數(shù)據(jù)。輔助數(shù)據(jù)文件的擴(kuò)展名為ndf(簡稱為輔助文件)。3.事務(wù)日志文件事務(wù)日志文件用于存儲數(shù)據(jù)庫的更新情況等事務(wù)日志信息。當(dāng)使用INSERT、DELETE、UPDATE等語句對數(shù)據(jù)庫進(jìn)行更改時,操作都會記錄在此文件中,而其他對數(shù)據(jù)庫內(nèi)容沒有影響的操作則不作記錄。當(dāng)數(shù)據(jù)庫損壞時,管理員可以使用事務(wù)日志恢復(fù)數(shù)據(jù)庫。每一個數(shù)據(jù)庫必須至少擁有一個事務(wù)日志文件,允許擁有多個日志文件。事務(wù)日志文件的擴(kuò)展名為ldf,日志文件的大小至少是512KB。為保證所有對數(shù)據(jù)庫的更新操作都能寫入日志,SQLServer事務(wù)日志采用提前寫入的方式,即對數(shù)據(jù)庫的修改先寫入事務(wù)日志,然后再寫入數(shù)據(jù)庫。其具體操作是:系統(tǒng)先將更改操作寫入事務(wù)日志,然后更改存儲在計(jì)算機(jī)緩存中的數(shù)據(jù)。為了提高執(zhí)行效率,此更改不會立即寫到硬盤的數(shù)據(jù)庫中,而是由系統(tǒng)以固定的時間間隔執(zhí)行CHECKPOINT命令,將更改過的數(shù)據(jù)庫批量寫入硬盤。SQLServer在執(zhí)行數(shù)據(jù)更改時會設(shè)置一個開始點(diǎn)和一個結(jié)束點(diǎn),如果尚未到達(dá)結(jié)束點(diǎn)而因某種原因使操作中斷,則在SQLServer重新啟動時會自動恢復(fù)已修改的數(shù)據(jù),使其返回未被修改的狀態(tài)。由此可見,當(dāng)數(shù)據(jù)庫被破壞時,可以用事務(wù)日志恢復(fù)數(shù)據(jù)庫中的內(nèi)容。注意:由于SQLServer2000中的數(shù)據(jù)和事務(wù)日志文件隨著數(shù)據(jù)的不斷操作而變化,同時又需要系統(tǒng)反應(yīng)靈敏,因此,這些文件不能存放在壓縮文件系統(tǒng)或共享網(wǎng)絡(luò)目錄等遠(yuǎn)程的網(wǎng)絡(luò)驅(qū)動器上。SQLServer2000的文件擁有兩個名稱:邏輯文件名和物理文件名。物理文件名是操作系統(tǒng)中的路徑加文件名,而邏輯文件名是物理文件名的一個簡稱或別名。當(dāng)使用Transact-SQL命令語句訪問某一個文件時,必須使用該文件的邏輯名。邏輯名必須符合SQLServer的命名規(guī)則,而且各個數(shù)據(jù)庫的邏輯文件名不能相同。物理文件名是文件的實(shí)際存儲在磁盤上的文件名,而且可包含完整的磁盤目錄路徑。例如,對于Master系統(tǒng)數(shù)據(jù)庫,Master為主數(shù)據(jù)文件的邏輯名,而其對應(yīng)的物理文件名為Master.mdf,其日志文件的邏輯名為Mastlog,物理文件名為Master.ldf。這些文件名都可以在安裝好的SQL服務(wù)器上驗(yàn)證。4.1.2數(shù)據(jù)庫文件組為了便于管理,SQLServer允許將多個文件歸納為一組,并賦予一個名稱,這就是文件組。利用文件組可以使服務(wù)器的性能得到提高。例如,可以在不同的硬盤上創(chuàng)建多個數(shù)據(jù)文件,并將這些文件指派到某個文件組中。如果在該文件組上創(chuàng)建了一個數(shù)據(jù)表,則當(dāng)查詢該數(shù)據(jù)表中的數(shù)據(jù)時,可以在不同的硬盤上同時進(jìn)行,提高查詢效率。

QLServer中的數(shù)據(jù)庫文件組分為主文件組(PrimaryFileGroup)和用戶定義文件組(User_definedGroup)。

(1)主文件組:由系統(tǒng)創(chuàng)建,包含主數(shù)據(jù)文件和任何沒有明確指派給其他文件組的數(shù)據(jù)文件。數(shù)據(jù)庫的系統(tǒng)表都包含在主文件組中。(2)用戶定義文件組:由用戶創(chuàng)建,是在CREATEDATABASE或ALTERDATABASE語句中使用FILEGROUP關(guān)鍵字指定的文件組。主文件組中包含了所有的系統(tǒng)表。當(dāng)建立數(shù)據(jù)庫時,主文件組包括主數(shù)據(jù)文件和未指定組的其他數(shù)據(jù)文件。在用戶定義文件組和主文件組之間,有一個默認(rèn)文件組指向其中一個文件組。在創(chuàng)建數(shù)據(jù)庫對象時,如果沒有指定將其放在哪一個文件組中,則會將它放在默認(rèn)文件組中。如果沒有指定默認(rèn)文件組的指向,則默認(rèn)文件組指向主文件組。一個文件只能存在于一個文件組中,一個文件組也只能被一個數(shù)據(jù)庫使用;文件組只包含數(shù)據(jù)文件(主數(shù)據(jù)文件和輔助數(shù)據(jù)文件),這些文件可以存放在不同的物理磁盤上。

事實(shí)上,SQLServer2000在沒有文件組時也能有效地工作。在沒有指定用戶定義文件組的情況下,所有文件都包含在主文件組中。在SQLServer2000中,使用文件組可以提高輸入/輸出性能,但它不是唯一的手段。4.1.3SQLServer的數(shù)據(jù)庫對象數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)指數(shù)據(jù)庫由哪些性質(zhì)的信息組成。SQLServer的數(shù)據(jù)庫不只可以存儲數(shù)據(jù),還可以存儲所有與數(shù)據(jù)處理操作相關(guān)的信息。實(shí)際上,SQLServer的數(shù)據(jù)庫由諸如表、視圖、索引等各種不同的數(shù)據(jù)庫對象組成,它們分別用來存儲特定信息并支持特定功能,構(gòu)成數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)。SQLServer2000的數(shù)據(jù)庫中的數(shù)據(jù)及信息在邏輯上組成一系列對象,用戶打開某個數(shù)據(jù)庫時,所看到的是邏輯對象,而不是存放在磁盤上的物理數(shù)據(jù)文件。數(shù)據(jù)庫中的邏輯對象如下:

(1)表(Table):一種二維數(shù)據(jù)對象,由行和列組成,用于存儲關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。每個表存儲有關(guān)由數(shù)據(jù)庫建模的一類對象的信息。

(2)視圖(View):可以使用與表相同的方式在SQL語句中引用的數(shù)據(jù)庫對象。

(3)存儲過程(Storedprocedures):Transact-SQL語句的預(yù)編譯集合,這些語句在一個名稱下存儲并作為一個單元運(yùn)行。(4)觸發(fā)器(Triggers):當(dāng)修改指定表中的數(shù)據(jù)時自動執(zhí)行的存儲過程。

(5)用戶自定義數(shù)據(jù)類型(User-defineddatatypes):由用戶創(chuàng)建、用于自定義數(shù)據(jù)存儲、基于SQLServer數(shù)據(jù)類型的一種數(shù)據(jù)類型。

(6)用戶自定義函數(shù)(User-definedfunctions):由用戶定義的Transact-SQL函數(shù)。

(7)索引(Indexes):關(guān)系數(shù)據(jù)庫中基于鍵值提供的對表的行中數(shù)據(jù)進(jìn)行快速訪問的數(shù)據(jù)庫對象。

(8)規(guī)則(Rule):綁定到列或用戶定義的數(shù)據(jù)類型,并指定列可接受哪些數(shù)據(jù)值的數(shù)據(jù)庫對象。(9)默認(rèn)值(Defaults):當(dāng)用戶未指定時由系統(tǒng)自動指派的數(shù)據(jù)值、選項(xiàng)設(shè)置、排序規(guī)則或名稱。

(10)全文目錄(Full-textcatalog):存儲數(shù)據(jù)庫內(nèi)表的全部全文索引。

(11)約束(Constraint):指派給表列的屬性,用于防止將某些類型的無效數(shù)值放到該列中。4.2系統(tǒng)數(shù)據(jù)庫和示例數(shù)據(jù)庫

SQLServer2000安裝成功后,系統(tǒng)會自動創(chuàng)建6個數(shù)據(jù)庫,它們分別是master、model、msdb、tempdb、pubs和northwind。其中,前四個是系統(tǒng)數(shù)據(jù)庫,后兩個為示例數(shù)據(jù)庫。這些系統(tǒng)數(shù)據(jù)庫的文件存儲在MicrosoftSQLServer默認(rèn)安裝目錄下的MSSQL子目錄的Data文件夾中。例如,master數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件的文件名分別為“master.mdf”和“master.ldf”。各數(shù)據(jù)庫的主要功能如下:●?master數(shù)據(jù)庫:是SQLServer系統(tǒng)最重要的數(shù)據(jù)庫。它記錄了SQLServer系統(tǒng)的所有系統(tǒng)信息。這些系統(tǒng)信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、SQLServer的初始化信息和其他系統(tǒng)數(shù)據(jù)庫及用戶數(shù)據(jù)庫的相關(guān)信息。因此,在創(chuàng)建一個數(shù)據(jù)庫,更改系統(tǒng)的配置,添加個人登錄帳戶以及進(jìn)行任何會更改系統(tǒng)數(shù)據(jù)庫master的操作之后,應(yīng)當(dāng)及時備份Master系統(tǒng)數(shù)據(jù)庫?!?model數(shù)據(jù)庫:是所有用戶數(shù)據(jù)庫和tempdb數(shù)據(jù)庫的模板數(shù)據(jù)庫。它含有master數(shù)據(jù)庫的所有系統(tǒng)表子集,這些系統(tǒng)數(shù)據(jù)庫是每個用戶定義數(shù)據(jù)庫時都需要的。當(dāng)創(chuàng)建新的數(shù)據(jù)庫時,SQLServer便會復(fù)制model數(shù)據(jù)庫并以此作為新數(shù)據(jù)庫的基礎(chǔ),因此利用它可以大大簡化數(shù)據(jù)庫及其對象的創(chuàng)建和設(shè)置工作,為用戶節(jié)省大量的時間。●?msdb數(shù)據(jù)庫:是代理服務(wù)數(shù)據(jù)庫。它為報(bào)警、任務(wù)調(diào)度和記錄操作員的操作提供存儲空間?!?tempdb數(shù)據(jù)庫:是一個臨時數(shù)據(jù)庫。它為所有的臨時表、臨時存儲過程及其他臨時操作提供存儲空間。tempdb數(shù)據(jù)庫由整個系統(tǒng)的所有數(shù)據(jù)庫使用,不管用戶使用哪個數(shù)據(jù)庫,他們建立的所有臨時表和存儲過程都存儲在tempdb中。每次啟動SQLServer時,tempdb數(shù)據(jù)庫被重新建立。當(dāng)用戶與SQLServer斷開聯(lián)接時,其臨時表和存儲過程被自動刪除?!?pubs和northwind數(shù)據(jù)庫:是SQLServer自帶的兩個實(shí)例數(shù)據(jù)庫,可以作為SQLServer學(xué)習(xí)的輔助工具,它們是否存在與整個數(shù)據(jù)庫系統(tǒng)的運(yùn)行無關(guān)。pubs數(shù)據(jù)庫存儲了一個虛構(gòu)的圖書出版公司的基本情況;northwind數(shù)據(jù)庫則包含了一個公司的銷售數(shù)據(jù),該公司是一個虛構(gòu)的公司,從事食品進(jìn)出口業(yè)務(wù)。4.3數(shù)據(jù)庫的查看查看是數(shù)據(jù)庫的常用操作,通??梢栽趦煞N界面上查看:企業(yè)管理器和查詢分析器。4.3.1用企業(yè)管理器查看數(shù)據(jù)庫信息在企業(yè)管理器的控制臺根目錄中選中所要查看的數(shù)據(jù)庫,并選擇“查看”菜單中的“任務(wù)板”命令,右邊窗口中就會顯示該數(shù)據(jù)庫的相關(guān)信息,如圖4-2所示,其中包括:

(1)數(shù)據(jù)庫信息:數(shù)據(jù)庫擁有者、創(chuàng)建時間、大小、用戶個數(shù)等。

(2)維護(hù)信息:關(guān)于備份和維護(hù)的信息。

(3)已分配空間信息:所有數(shù)據(jù)文件和日志文件的空間使用情況。圖4-2Pubs數(shù)據(jù)庫的信息

要查看pubs數(shù)據(jù)庫的屬性,設(shè)置和修改pubs數(shù)據(jù)庫的屬性及選項(xiàng),可以進(jìn)行如下操作:雙擊pubs數(shù)據(jù)庫圖標(biāo)或用鼠標(biāo)右鍵單擊該數(shù)據(jù)庫名或圖標(biāo),在彈出的快捷菜單中選擇“屬性”命令,即可打開該數(shù)據(jù)庫的屬性窗口。在該窗口中可以查看數(shù)據(jù)庫屬性信息,并可設(shè)置和修改數(shù)據(jù)庫的屬性和選項(xiàng)設(shè)置,如圖4-3所示。數(shù)據(jù)庫屬性窗口有“常規(guī)”、“數(shù)據(jù)文件”、“事務(wù)日志”、“文件組”、“選項(xiàng)”和“權(quán)限”等6個選項(xiàng)卡。

(1)“常規(guī)”選項(xiàng)卡:可以查看數(shù)據(jù)庫、備份、維護(hù)等方面的基本信息,如圖4-4所示。圖4-3數(shù)據(jù)庫屬性圖4-4“常規(guī)”選項(xiàng)卡(2)“數(shù)據(jù)文件”選項(xiàng)卡:可對數(shù)據(jù)文件(主數(shù)據(jù)文件和輔助數(shù)據(jù)文件)的初始容量、最大容量、增長量進(jìn)行設(shè)置修改,也可以設(shè)置在哪一個文件組中進(jìn)行文件的增刪(這將影響文件組中包含文件的數(shù)量),確定新增文件的名稱和物理位置,如圖4-5所示。

(3)“事務(wù)日志”選項(xiàng)卡:可對日志文件的初始容量、最大容量、增長量進(jìn)行設(shè)置和修改,也可以新增或刪除日志文件,但不影響文件組,如圖4-6所示。

(4)“文件組”選項(xiàng)卡:可增刪文件組,對文件組名稱、組內(nèi)文件數(shù)、只讀屬性及默認(rèn)值進(jìn)行查詢、設(shè)置和修改,如圖4-7所示。圖4-5“數(shù)據(jù)文件”選項(xiàng)卡圖4-6“事務(wù)日志”選項(xiàng)卡圖4-7“文件組”選項(xiàng)卡(5)“選項(xiàng)”選項(xiàng)卡:可對數(shù)據(jù)庫的訪問權(quán)限及多項(xiàng)屬性進(jìn)行設(shè)置和修改,如圖4-8所示。(6)“權(quán)限”選項(xiàng)卡:該選項(xiàng)卡以后再作介紹。圖4-8“選項(xiàng)”選項(xiàng)卡4.3.2用查詢分析器查看數(shù)據(jù)庫信息在查詢分析器中查看數(shù)據(jù)庫要使用系統(tǒng)存儲過程sp_helpdb。語法:

[EXECUTE]sp_helpdb[數(shù)據(jù)庫名]EXECUTE可以縮寫為EXEC,如果它是一個批處理中的第一個語句,則可全部省略。如省略數(shù)據(jù)庫名,則可查看所有數(shù)據(jù)庫信息。

【例4-1】在查詢分析器中用sp_helpdb語句查看所有數(shù)據(jù)庫信息。在查詢分析器中輸入代碼:

execsp_helpdb

單擊“運(yùn)行”按鈕,運(yùn)行結(jié)果如圖4-9所示。圖4-9查看所有數(shù)據(jù)庫信息

【例4-2】在查詢分析器中用sp_helpdb語句查看pubs數(shù)據(jù)庫信息。在查詢分析器中輸入代碼:

execsp_helpdbpubs

按“F5”鍵或單擊“運(yùn)行”按鈕,運(yùn)行結(jié)果如圖4-10所示。另外,使用系統(tǒng)存儲過程sp_databases可以查看所有可用數(shù)據(jù)庫的名稱和大??;使用系統(tǒng)存儲過程sp_helpfile可以查看當(dāng)前數(shù)據(jù)庫中某個文件的名稱、位置和大??;使用系統(tǒng)存儲過程sp_helpfilegroup可以查看當(dāng)前數(shù)據(jù)庫中某個文件組的名稱、編號和包含的文件數(shù)。圖4-10查看pubs數(shù)據(jù)庫信息4.4數(shù)據(jù)庫的建立創(chuàng)建數(shù)據(jù)庫的一般原則是:將與業(yè)務(wù)相關(guān)的數(shù)據(jù)集合放在一個數(shù)據(jù)庫中,以方便使用者的管理,不要把無關(guān)的多個數(shù)據(jù)集合放在一個數(shù)據(jù)庫中。創(chuàng)建數(shù)據(jù)庫需要一定的許可,在默認(rèn)情況下,只有系統(tǒng)管理員和數(shù)據(jù)庫擁有者可以創(chuàng)建數(shù)據(jù)庫。當(dāng)然,也可以把這種許可授權(quán)給其他用戶。數(shù)據(jù)庫被創(chuàng)建后,創(chuàng)建數(shù)據(jù)庫的用戶自動成為該數(shù)據(jù)庫的所有者。每個數(shù)據(jù)庫都由以下幾個部分組成:關(guān)系圖、表、視圖、存儲過程、用戶、角色、規(guī)則、默認(rèn)值、用戶自定義數(shù)據(jù)類型和用戶自定義函數(shù)。SQLServer使用一個公共模板來創(chuàng)建數(shù)據(jù)庫,每個服務(wù)器中最多可以創(chuàng)建32767個數(shù)據(jù)庫。數(shù)據(jù)庫的名稱必須滿足系統(tǒng)規(guī)定的標(biāo)識符命名規(guī)則,最好使用有意義的名稱命名數(shù)據(jù)庫。每個數(shù)據(jù)庫必須有一個唯一的數(shù)據(jù)庫名,以對其進(jìn)行標(biāo)識(在所在的數(shù)據(jù)庫實(shí)例中唯一即可)。數(shù)據(jù)庫名稱必須符合SQLServer標(biāo)識符的構(gòu)成規(guī)則:(1)由字母、漢字、數(shù)字、下劃線組成。(2)不能以數(shù)字開頭,不能是關(guān)鍵字。(4)最長不超過128個字符。

創(chuàng)建數(shù)據(jù)庫除了為數(shù)據(jù)庫設(shè)計(jì)名稱外,還要設(shè)計(jì)數(shù)據(jù)庫所占用的存儲空間大小和存放文件位置等。數(shù)據(jù)庫的基本信息存儲在master數(shù)據(jù)庫中的sysdatabases系統(tǒng)表中,因而可以使用SELECT語句來查詢數(shù)據(jù)庫信息。創(chuàng)建數(shù)據(jù)庫的方法有以下三種:使用向?qū)?、使用企業(yè)管理器和使用Transact-SQL語言。4.4.1使用向?qū)?chuàng)建數(shù)據(jù)庫使用向?qū)?chuàng)建數(shù)據(jù)庫的步驟如下:

(1)在企業(yè)管理器中,首先選中欲創(chuàng)建數(shù)據(jù)庫的服務(wù)器節(jié)點(diǎn),然后從“工具”菜單中選擇“向?qū)А边x項(xiàng),或在工具欄中選擇圖標(biāo),將出現(xiàn)如圖4-11所示的“選擇向?qū)А睂υ捒?。圖4-11“選擇向?qū)А睂υ捒?2)在圖4-11中雙擊“注冊服務(wù)器向?qū)А泵?,或者選擇“注冊服務(wù)器向?qū)А泵詈髥螕簟按_定”按鈕,出現(xiàn)“歡迎使用創(chuàng)建數(shù)據(jù)庫向?qū)А睂υ捒颍鐖D4-12所示。

(3)單擊“下一步”按鈕,出現(xiàn)“命名數(shù)據(jù)庫并指定它的位置”對話框,如圖4-13所示。在該對話框中,在第一個文本框中要填寫即將創(chuàng)建的數(shù)據(jù)庫名稱,在第二個文本框中填寫該數(shù)據(jù)庫文件的存放位置,在第三個文本框中填寫數(shù)據(jù)庫事務(wù)日志文件的存放位置。輸入數(shù)據(jù)庫名稱時要注意符合系統(tǒng)的命名規(guī)則。選擇文件的存儲位置時,可以單擊文本框右端的“”按鈕來選擇對應(yīng)的文件路徑。圖4-12“歡迎使用創(chuàng)建數(shù)據(jù)庫向?qū)А睂υ捒驁D4-13“命名數(shù)據(jù)庫并指定它的位置”對話框(4)單擊“下一步”按鈕,出現(xiàn)“命名數(shù)據(jù)庫文件”對話框,如圖4-14所示。在該對話框中可以修改數(shù)據(jù)庫文件的文件名和該文件的大小。在默認(rèn)情況下,數(shù)據(jù)庫文件的文件名為:數(shù)據(jù)庫名_Data,初始大小為1MB。

(5)單擊“下一步”按鈕,出現(xiàn)“定義數(shù)據(jù)庫文件的增長”對話框,如圖4-15所示。在該對話框中可以定義是否允許數(shù)據(jù)庫自動增長以及數(shù)據(jù)庫增長的比例。如果選擇“數(shù)據(jù)庫文件自動增長”選項(xiàng),則需要選擇其增長的方式,是以兆字節(jié)為單位增長還是按照數(shù)據(jù)庫的百分比增長。另外,在該對話框中還可以限制數(shù)據(jù)庫文件增長的最大尺寸。如果不限制數(shù)據(jù)庫文件的最大尺寸,那么數(shù)據(jù)庫文件就會一直增長,直到把整個磁盤空間占滿為止。圖4-14“命名數(shù)據(jù)庫文件”對話框圖4-15“定義數(shù)據(jù)庫文件的增長”對話框(6)單擊“下一步”按鈕,出現(xiàn)“命名事務(wù)日志文件”對話框,如圖4-16所示。在該對話框中,除了可以指定日志文件的名稱外,還可以指定該日志文件的初始大小。在默認(rèn)情況下,初始文件大小為1MB。

(7)在圖4-16中單擊“下一步”按鈕,出現(xiàn)“定義事務(wù)日志文件的增長”對話框,如圖4-17所示。在該對話框中可以定義是否允許數(shù)據(jù)庫的事務(wù)日志文件自動增長及其增長的比例。如果選擇“事務(wù)日志文件自動增長”選項(xiàng),則需要選擇其增長方式,是以兆字節(jié)為單位增長還是按照數(shù)據(jù)庫的百分比增長。另外,該對話框還可以限制數(shù)據(jù)庫日志文件增長的最大尺寸。如果不限制數(shù)據(jù)庫日志文件的最大尺寸,那么數(shù)據(jù)庫日志文件就會一直增長,直到把整個磁盤空間占滿為止。圖4-16“命名事務(wù)日志文件”對話框圖4-17“定義事務(wù)日志文件的增長”對話框(8)在圖4-17中單擊“下一步”按鈕,就會出現(xiàn)“正在完成創(chuàng)建數(shù)據(jù)庫向?qū)А睂υ捒?,如圖4-18所示,此時系統(tǒng)并沒有真正創(chuàng)建數(shù)據(jù)庫。如果前面的定義有問題或者需要更改,則可以單擊“上一步”按鈕返回修改;如果確認(rèn)沒有問題,則單擊“完成”按鈕即可創(chuàng)建該數(shù)據(jù)庫。圖4-18完成創(chuàng)建數(shù)據(jù)庫4.4.2使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫的步驟如下:

(1)在企業(yè)管理器中,單擊工具欄中的圖標(biāo),也可在數(shù)據(jù)庫文件夾或其下屬任一數(shù)據(jù)庫圖標(biāo)上右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”選項(xiàng),出現(xiàn)如圖4-19所示的“數(shù)據(jù)庫屬性”窗口。

(2)在“常規(guī)”選項(xiàng)卡中,要求用戶輸入數(shù)據(jù)庫名稱以及排序規(guī)則名稱(通常為默認(rèn))。

(3)單擊“數(shù)據(jù)文件”選項(xiàng)卡,該選項(xiàng)卡用來輸入數(shù)據(jù)庫文件的名稱、存儲位置、初始容量大小和所屬文件組名稱,如圖4-20所示。選項(xiàng)卡的下方是設(shè)置文件增長信息的部分,首先選擇是否允許文件自動增長,然后設(shè)置文件的增長方式和允許的數(shù)據(jù)文件的最大尺寸。圖4-19“數(shù)據(jù)庫屬性”窗口圖4-20“數(shù)據(jù)文件”選項(xiàng)卡(4)單擊“事務(wù)日志”選項(xiàng)卡,該選項(xiàng)卡用來設(shè)置事務(wù)日志文件信息,如圖4-21所示。在“文件名”列表框中可以輸入事務(wù)日志文件的信息,包括事務(wù)日志文件名稱、存儲位置、初始大小。最下面的部分是設(shè)置事務(wù)日志文件增長信息的部分,首先選擇是否允許文件自動增長,然后設(shè)置文件的增長方式和允許的事務(wù)日志文件的最大尺寸。

(5)單擊圖4-21中的“確定”按鈕,就開始創(chuàng)建新的數(shù)據(jù)庫。圖4-21“事務(wù)日志”選項(xiàng)卡4.4.3使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫

Transact-SQL語言使用CREATEDATABASE命令來創(chuàng)建數(shù)據(jù)庫。該命令的語法如下:CREATEDATABASEdatabase_name[ON[<filespec>[,...n]][,<filegroup>[,...n]]][LOGON{<filespec>[,...n]}][COLLATEcollation_name][FORLOAD|FORATTACH]<filespec>::=[PRIMARY]([NAME=logical_file_name,]FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,F(xiàn)ILEGROWTH=growth_increment])[,...n]<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]

說明:在Transact-SQL語言的命令格式中,用[]括起來的內(nèi)容表示是可選的;[,…n]表示重復(fù)前面的內(nèi)容;用<>括起來的表示在實(shí)際編寫語句時用相應(yīng)的內(nèi)容替代;用{}括起來的表示是必選的;類似A|B的格式,表示A和B只能選擇一個,不能同時都選。CREATEDATABASE命令中各參數(shù)的說明如下:●?database_name:新數(shù)據(jù)庫的名稱。數(shù)據(jù)庫名稱在數(shù)據(jù)庫服務(wù)器中必須唯一,最長為128個字符,并且要符合標(biāo)識符的命名規(guī)則。每個服務(wù)器管理的數(shù)據(jù)庫最多為32767個?!?ON:指定存放數(shù)據(jù)庫的數(shù)據(jù)文件信息。該關(guān)鍵字后面可以包含用逗號分隔的filespec列表,filespec列表用于定義主文件組的數(shù)據(jù)文件。主文件組的文件列表后可以包含用逗號分隔的filegroup列表,filegroup列表用于定義用戶文件組及其中的文件?!?PRIMARY:用于指定主文件組中的文件。主文件組不僅包含數(shù)據(jù)庫系統(tǒng)表中的全部內(nèi)容,而且還包含用戶文件組中沒有包含的全部對象。主文件組的第一個由filespec指定的文件是主文件,該文件包含數(shù)據(jù)庫的邏輯起點(diǎn)及其系統(tǒng)表。一個數(shù)據(jù)庫只能有一個主文件,默認(rèn)情況下,如果不指定PRIMARY關(guān)鍵字,則在命令中列出的第一個文件將被默認(rèn)為主文件。●?LOGON:指明事務(wù)日志文件的明確定義。如果沒有本選項(xiàng),則系統(tǒng)會自動產(chǎn)生一個文件名前綴與數(shù)據(jù)庫名相同,容量為所有數(shù)據(jù)庫文件大小1/4的事務(wù)日志文件?!?FORLOAD:表示計(jì)劃將備份直接裝入新建的數(shù)據(jù)庫,主要是為了和過去的SQLServer版本兼容?!?FORATTACH:表示在一組已經(jīng)存在的操作系統(tǒng)文件中建立一個新的數(shù)據(jù)庫?!?NAME:指定數(shù)據(jù)庫的邏輯名稱。這是在SQLServer系統(tǒng)中使用的名稱,是數(shù)據(jù)庫在SQLServer中的標(biāo)識符?!?FILENAME:指定數(shù)據(jù)庫所在文件的操作系統(tǒng)文件名稱和路徑,該操作系統(tǒng)文件名稱和NAME的邏輯名稱一一對應(yīng)?!?SIZE:指定數(shù)據(jù)庫的初始容量大小。如果沒有指定主文件的大小,則SQLServer默認(rèn)其與模板數(shù)據(jù)庫中的主文件大小一致,其他數(shù)據(jù)庫文件和事務(wù)日志文件則默認(rèn)為1MB。指定大小的數(shù)字其SIZE可以使用KB、MB、GB和TB后綴,默認(rèn)的后綴為MB。SIZE中不能使用小數(shù),其最小值為512KB,默認(rèn)值為1MB。主文件的SIZE不能小于模板數(shù)據(jù)庫中的主文件?!?MAXSIZE:指定操作系統(tǒng)文件可以增長到的最大尺寸。如果沒有指定,則文件可以不斷增長直到充滿磁盤?!?FILEGROWTH:指定文件每次增加容量的大小。當(dāng)指定數(shù)據(jù)為0時,表示文件不自動增長;當(dāng)容量不夠時,需由人工增加。增加量是由數(shù)字和后綴(KB、MB、%)表示的,后綴%表示該文件可增加百分之多少。默認(rèn)后綴為MB。如果沒有指定FILEGROWTH,則默認(rèn)值為10%。每次增加容量的最小值為64KB,計(jì)算后的增加容量值是64K的倍數(shù)。

在使用CREATEDATABASE命令創(chuàng)建數(shù)據(jù)庫的過程中,SQLServer用模板數(shù)據(jù)庫(model)來初始化新建的數(shù)據(jù)庫。在模板數(shù)據(jù)庫中,所有用戶定義的對象和數(shù)據(jù)庫的設(shè)置都會被復(fù)制到新數(shù)據(jù)庫中。在理想的情況下,只有有限的用戶可以被授權(quán)創(chuàng)建數(shù)據(jù)庫。系統(tǒng)安裝后,只有系統(tǒng)管理員有這個特權(quán),系統(tǒng)管理員可以將這個特權(quán)授予其他用戶。數(shù)據(jù)庫的創(chuàng)建者被默認(rèn)為該數(shù)據(jù)庫的所有者,可以通過sp_changedbowner系統(tǒng)存儲過程來更改數(shù)據(jù)庫所有者。

【例4-3】使用CREATEDATABASE創(chuàng)建一個Sales數(shù)據(jù)庫,所有參數(shù)均取默認(rèn)值。程序清單如下:

CREATEDATABASESales

系統(tǒng)輸出結(jié)果如下:

CREATEDATABASE進(jìn)程正在磁盤'Sales'上分配0.75MB的空間。

CREATEDATABASE進(jìn)程正在磁盤‘Sales_log’上分配0.49MB的空間。說明:這是最簡單的創(chuàng)建數(shù)據(jù)庫的命令。由于沒有指定主文件和日志文件,因此在默認(rèn)情況下,命名主文件為Sales.mdf,日志文件為Sales_log.ldf。同時,由于是按照model數(shù)據(jù)庫的方式來創(chuàng)建的數(shù)據(jù)庫,因此主文件和日志文件的大小與model數(shù)據(jù)庫的主文件和日志文件的大小相同。由于沒有指定主文件和日志文件的最大長度,因此主文件和日志文件都可以自由增長,直到充滿整個硬盤空間。

【例4-4】創(chuàng)建一個Student數(shù)據(jù)庫。該數(shù)據(jù)庫的主文件邏輯名稱為Student_data,物理文件名為Student.mdf,初始大小為10MB,最大尺寸為無限大,增長速度為10%;數(shù)據(jù)庫的日志文件邏輯名稱為Student_log,物理文件名為Student.ldf,初始大小為1MB,最大尺寸為5MB,增長速度為每次1MB。程序清單如下:

CREATEDATABASEStudent0NPRIMARY(NAME=Student_data,

FILENAME='e:\data\Student.mdf',SIZE=10,MAXSIZE=unlimited,--最大尺寸為無限大,一般要設(shè)置一個有限數(shù)值FILEGROWTH=10%)LOGON(NAME=Student_log,

FILENAME='e:\data\Student.ldf',

SIZE=1,

MAXSIZE=5,

FILEGROWTH=1)

系統(tǒng)輸出結(jié)果如下:

CREATEDATABASE進(jìn)程正在磁盤‘student_data’上分配10.00MB的空間。

CREATEDATABASE進(jìn)程正在磁盤'student_log'上分配1.00MB的空間。

注意:“e:\data”必須事先創(chuàng)建好,F(xiàn)ILENAME項(xiàng)要用單引號?!纠?-5】創(chuàng)建一個指定多個數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫。該數(shù)據(jù)庫名稱為students,有一個10MB和一個20MB的數(shù)據(jù)文件及兩個10MB的事務(wù)日志文件。數(shù)據(jù)文件指定在主文件組中,邏輯名稱為student1和student2,物理文件名為student1.mdf和student2.ndf,兩個數(shù)據(jù)文件的最大尺寸分別為80MB和100MB,增長速度分別為10%和1MB。事務(wù)日志文件的邏輯名為studentlog1和studentlog2,物理文件名為studentlog1.ldf和studentlog2.ldf,最大尺寸均為50MB,文件增長速度為1MB。程序清單如下:

CREATEDATABASEstudentsONPRIMARY(NAME=student1,F(xiàn)ILENAME='e:\data\student1.mdf',

SIZE=10,

MAXSIZE=80,F(xiàn)ILEGROWTH=10%),--注意這里要有“,”,因?yàn)橄旅媸恰?”(NAME=student2,

FILENAME='f:\data\student2.ndf',

SIZE=20,

MAXSIZE=100,

FILEGROWTH=1)--注意這里不要“,”,因?yàn)橄旅娌皇恰?”LOGON(NAME=studentlog1,

FILENAME='j:\data\studentlog1.ldf',

SIZE=10,MAXSIZE=50,

FILEGROWTH=1),

(NAME=studentlog2,

FILENAME='k:\data\studentlog2.ldf',

SIZE=10,

MAXSIZE=50,

FILEGROWTH=1)

注意:如果磁盤空間足夠大,則可以將日志文件和數(shù)據(jù)文件放在同一磁盤上,但從安全和性能上考慮,日志文件和數(shù)據(jù)文件應(yīng)分別放在不同的物理磁盤上。4.5數(shù)據(jù)庫的刪除對于那些不再需要的數(shù)據(jù)庫,可以刪除它以釋放在磁盤上占用的空間。刪除數(shù)據(jù)庫有兩種方式,即利用企業(yè)管理器和利用DROP語句。4.5.1利用企業(yè)管理器刪除數(shù)據(jù)庫在企業(yè)管理器中,找到所要刪除的數(shù)據(jù)庫并右擊,從彈出的快捷菜單中選擇“刪除”選項(xiàng),或單擊所要刪除的數(shù)據(jù)庫,再按下鍵盤上的Delete鍵,即可刪除數(shù)據(jù)庫,也可以選擇數(shù)據(jù)庫文件夾或圖標(biāo)后單擊工具欄中表示刪除的圖標(biāo)來刪除數(shù)據(jù)庫。系統(tǒng)會彈出“確認(rèn)是否要刪除數(shù)據(jù)庫”對話框,單擊“是”按鈕,則刪除該數(shù)據(jù)庫。刪除數(shù)據(jù)庫一定要慎重,因?yàn)橄到y(tǒng)無法輕易恢復(fù)被刪除的數(shù)據(jù),除非做過數(shù)據(jù)庫備份。使用這種方法每次只能刪除一個數(shù)據(jù)庫。4.5.2利用DROP語句刪除數(shù)據(jù)庫利用DROP語句可以從SQLServer中一次刪除一個或多個數(shù)據(jù)庫。其語法如下:

DROPDATABASEdatabase_name[,…n]【例4-6】使用DROP語句刪除已創(chuàng)建的數(shù)據(jù)庫students。程序清單如下:

DROPDATABASEstudents

系統(tǒng)輸出結(jié)果為

正在刪除數(shù)據(jù)庫文件'k:\data\studentlog2.ldf'。正在刪除數(shù)據(jù)庫文件'f:\data\student2.ndf'。正在刪除數(shù)據(jù)庫文件'j:\data\studentlog1.ldf'。正在刪除數(shù)據(jù)庫文件'e:\data\student1.mdf'。說明:不是所有的數(shù)據(jù)庫在任何時候都可以被刪除,只有處于正常狀態(tài)下的數(shù)據(jù)庫才能使用DROP語句刪除。當(dāng)數(shù)據(jù)庫處于以下狀態(tài)時不能被刪除:數(shù)據(jù)庫正在使用;數(shù)據(jù)庫正在恢復(fù);數(shù)據(jù)庫包含用于復(fù)制的、已經(jīng)出版的對象。4.6數(shù)據(jù)庫的移動如果要把數(shù)據(jù)庫從一個SQLServer系統(tǒng)中移動到另一個SQLServer系統(tǒng),或者把數(shù)據(jù)文件從一個磁盤移到另一個磁盤上,則可以先將數(shù)據(jù)庫與SQLServer系統(tǒng)分離,然后把數(shù)據(jù)庫文件復(fù)制到其他磁盤上,再將數(shù)據(jù)庫重新附加到原來的系統(tǒng)中或附加到另一個系統(tǒng)中。數(shù)據(jù)庫的附加是數(shù)據(jù)庫物理文件在數(shù)據(jù)庫系統(tǒng)中重新掛鉤的過程。分離數(shù)據(jù)庫實(shí)際上只是從SQLServer系統(tǒng)中把某數(shù)據(jù)庫與其對應(yīng)的數(shù)據(jù)文件和事務(wù)日志文件脫鉤,組成該數(shù)據(jù)庫的數(shù)據(jù)文件和事務(wù)日志文件依然完好無損地保存在磁盤上。分離后的數(shù)據(jù)庫可以再附加到任何SQLServer系統(tǒng)中,而且數(shù)據(jù)庫在新系統(tǒng)中的使用狀態(tài)與它分離時的狀態(tài)完全相同。分離前,數(shù)據(jù)庫文件和日志文件不可以復(fù)制或者刪除,分離后就可以了。4.6.1使用企業(yè)管理器分離數(shù)據(jù)庫

使用企業(yè)管理器分離數(shù)據(jù)庫的過程如下:

(1)選中要分離的數(shù)據(jù)庫,選擇“操作”菜單中的“所有任務(wù)”,或者直接右擊要分離的數(shù)據(jù)庫,在彈出的快捷菜單中選擇“所有任務(wù)”,然后再選擇其子菜單中的“分離數(shù)據(jù)庫”命令,將出現(xiàn)“分離數(shù)據(jù)庫”對話框。

(2)在“分離數(shù)據(jù)庫”對話框中,檢查數(shù)據(jù)庫的狀態(tài),包括與當(dāng)前數(shù)據(jù)庫的聯(lián)接數(shù)和是否正在執(zhí)行復(fù)制數(shù)據(jù)庫操作。

注意:如果有用戶正在聯(lián)接數(shù)據(jù)庫或者正在執(zhí)行復(fù)制數(shù)據(jù)庫操作,則不能分離數(shù)據(jù)庫,此時若要執(zhí)行分離操作,則必須先單擊“清除”按鈕清除聯(lián)接。在此對話框中還可以選擇是否“在分離前更新數(shù)據(jù)庫統(tǒng)計(jì)信息”。(3)單擊“確定”按鈕完成數(shù)據(jù)庫的分離。已分離的數(shù)據(jù)庫將不再出現(xiàn)在SQLServer系統(tǒng)中,但是此數(shù)據(jù)庫的相關(guān)文件仍然可以從數(shù)據(jù)庫文件原先的文件夾中找到。4.6.2使用sp_detach_db語句分離數(shù)據(jù)庫使用sp_detach_db語句分離數(shù)據(jù)庫的語法格式如下:

execsp_detach_db數(shù)據(jù)庫名稱[,true|false]

其中,“數(shù)據(jù)庫名稱”指定要分離的數(shù)據(jù)庫;第二個參數(shù)指定是否在分離數(shù)據(jù)庫前更新數(shù)據(jù)庫統(tǒng)計(jì)信息,取false為指定更新數(shù)據(jù)庫統(tǒng)計(jì)信息,取true或省略則不更新數(shù)據(jù)庫統(tǒng)計(jì)信息。下面的語句用來從系統(tǒng)中分離Sales數(shù)據(jù)庫,不更新數(shù)據(jù)庫統(tǒng)計(jì)信息。

execsp_detach_db'Sales','true'4.6.3使用企業(yè)管理器附加數(shù)據(jù)庫使用企業(yè)管理器附加數(shù)據(jù)庫的過程如下:

(1)在企業(yè)管理器中選中數(shù)據(jù)庫節(jié)點(diǎn),選擇“操作”菜單中的“所有任務(wù)”,或者直接右擊數(shù)據(jù)庫節(jié)點(diǎn),在彈出的快捷菜單中選擇“所有任務(wù)”,然后再選擇其子菜單中的“附加數(shù)據(jù)庫”命令,彈出如圖4-22所示的“附加數(shù)據(jù)庫”對話框。

(2)在“附加數(shù)據(jù)庫”對話框的“要附加數(shù)據(jù)庫的MDF文件”文本框中直接輸入要附加到SQLServer系統(tǒng)的數(shù)據(jù)庫主數(shù)據(jù)文件的路徑與文件名,或者單擊該文本框右側(cè)的“”按鈕,在彈出的“瀏覽現(xiàn)有的文件”對話框中展開路徑查找并選中數(shù)據(jù)庫主數(shù)據(jù)文件。圖4-22“附加數(shù)據(jù)庫”對話框(3)如果要附加數(shù)據(jù)庫的事務(wù)日志文件或輔助數(shù)據(jù)文件與主數(shù)據(jù)文件不在一個磁盤或一個文件夾內(nèi),則該文件的“當(dāng)前文件位置”前面出現(xiàn)錯誤符號,可以修改為正確路徑(或者把它們與主數(shù)據(jù)文件存放在一個文件夾中),在出現(xiàn)正確符號后,單擊“確定”就可以把指定數(shù)據(jù)庫附加到當(dāng)前的SQLServer系統(tǒng)中。4.6.4使用sp_attach_db語句附加數(shù)據(jù)庫下面的示例將pubs中的兩個文件附加到當(dāng)前服務(wù)器。在查詢分析器中輸入:

execsp_attach_db@dbname=N'pubs',

@filename1=N'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf',

@filename2=N'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs_log.ldf'

就可以把已經(jīng)分離的pubs數(shù)據(jù)庫的文件重新附加到數(shù)據(jù)庫系統(tǒng)中。4.7數(shù)據(jù)庫的其他操作除了前面章節(jié)講到的數(shù)據(jù)庫操作外,還有一些其他操作。4.7.1數(shù)據(jù)庫的選項(xiàng)修改利用企業(yè)管理器的數(shù)據(jù)庫屬性中的“選項(xiàng)”選項(xiàng)卡可對數(shù)據(jù)庫的訪問權(quán)限及多項(xiàng)屬性進(jìn)行設(shè)置和修改。其中,常用選項(xiàng)如下:●限制訪問:可選擇僅允許db_owner、dbcreator或sysadmin成員訪問數(shù)據(jù)庫,也可選擇“單用戶”,即只允許一個用戶訪問,一個用戶退出后另一個用戶才能登錄,這樣管理員可以保證除了自己沒有其他用戶在使用系統(tǒng)。●只讀:數(shù)據(jù)庫中的數(shù)據(jù)只能讀取,不能修改?!褡詣雨P(guān)閉:當(dāng)最后一個用戶退出后,系統(tǒng)自動關(guān)閉該數(shù)據(jù)庫,釋放占用的資源;當(dāng)又有新的用戶要求聯(lián)接時,數(shù)據(jù)庫自動打開?!褡詣邮湛s:數(shù)據(jù)刪除后若文件中的未用空間超過文件的25%,則將自動縮小文件,但不會小于設(shè)定的初始容量。如果設(shè)置只讀,則這個選項(xiàng)無效。通常這個選項(xiàng)設(shè)為“不選中”,當(dāng)未用空間超過文件的25%時,需要數(shù)據(jù)庫管理員手工縮小,其好處是可以避免在系統(tǒng)忙時自動縮小文件。●ANSINULL默認(rèn)設(shè)置:允許在數(shù)據(jù)庫表的列中輸入空(NULL)值?!襁f歸觸發(fā)器:允許觸發(fā)器遞歸調(diào)用。最多為32層?!褡詣痈陆y(tǒng)計(jì)信息:允許使用S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論