SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)課件_第1頁
SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)課件_第2頁
SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)課件_第3頁
SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)課件_第4頁
SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)課件_第5頁
已閱讀5頁,還剩174頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

SQLServer2000數(shù)據(jù)庫管理系統(tǒng)7.1SQLServer2000的簡介

SQLServer是一種關(guān)系數(shù)據(jù)庫,它除了支持傳統(tǒng)關(guān)系數(shù)據(jù)庫組件(如數(shù)據(jù)庫,表)和特性(如表的join)外,另外也支持當今關(guān)系數(shù)據(jù)庫常用的組件,如存儲過程,視圖等。SQLServer支持關(guān)系數(shù)據(jù)庫國際標準語言——SQL(它稱為Transact-SQL)。SQLServer另外的一項重要的特點是它支持數(shù)據(jù)庫復(fù)制的功能。

SQLServer2000包含有6種不同的版本:

(1)企業(yè)版(EnterpriseEdition)作為各種企業(yè)、單位或組織的數(shù)據(jù)庫服務(wù)器使用

(2)標準版(StandardEdition)用于小型的工作組或部門7.1SQLServer2000的簡介

(3)個人版(PersonalEdition)用于單機系統(tǒng)或客戶機(4)開發(fā)者版(DeveloperEdition)用于程序員開發(fā)應(yīng)用程序時,將SQLServer2000作為其數(shù)據(jù)存儲區(qū)。(5)WindowsCE版安裝于執(zhí)行WindowsCE的個人數(shù)字助理上(PDA),它能復(fù)制任何SQLServer2000版本的數(shù)據(jù),使WindowsCE數(shù)據(jù)能與公司的主要數(shù)據(jù)庫同步。

(6)評測版SQLServer2000評測版是一個功能基本齊全的版本,該版本主要用來評估SQLServer2000的功能。

7.1SQLServer2000的簡介

一、SQLServer2000的新特性(1)在關(guān)系數(shù)據(jù)庫方面的增強

1.XML支持

2.用戶定義函數(shù)和新的數(shù)據(jù)類型

3.索引視圖,索引增強

4.分布式查詢

5.備份和還原

6.級聯(lián)參考完整性約束

8.排序規(guī)則(2)圖形管理工具增強

1.日志傳送功能

2.SQL事件探查器增強

7.1SQLServer2000的簡介

3.SQL查詢分析器增強

4.復(fù)制數(shù)據(jù)庫向?qū)Ф?、SQLServer2000的主要組件作為一個完善的數(shù)據(jù)庫管理系統(tǒng),SQLServer2000提供了一些功能強大,使用方便的數(shù)據(jù)庫管理工具。下面,對這些組件一個簡單的介紹.

1、企業(yè)管理器(EnterpriseManager)

企業(yè)管理器是SQLServer中最重要的管理工具

2、查詢分析器(QueryAnalyzer)

查詢分析器用于執(zhí)行Transact-SQL命令等SQL腳本程序,以查詢分析或處理數(shù)據(jù)庫中的數(shù)據(jù)。

3

、

服務(wù)管理器(ServiceManager)

7.1SQLServer2000的簡介

服理器用于啟動、暫?;蛲V筍QLServer的四種服務(wù),即分布式事務(wù)協(xié)調(diào)器(DistributedTransactionCoordinator,DTC)、MSSQLServerOLAPservice、SQLServer和SQLServerAgent。

4、客戶端網(wǎng)絡(luò)實用工具(ClientNetworkUtility)

5、服務(wù)器端網(wǎng)絡(luò)實用工具(ServerNetworkUtility)服務(wù)器端網(wǎng)絡(luò)實用工具用于配置服務(wù)器端的連接、測定網(wǎng)絡(luò)庫的版本信息

6、導(dǎo)入和導(dǎo)出數(shù)據(jù)(ImportandExportData)7、在IIS中配置SQLXML支持(ConfigureSQLXMLSupportinIIS)7.1SQLServer2000的簡介

8、事件探查器(Profiler)

事務(wù)探查器的功能是監(jiān)視SQLServer數(shù)據(jù)庫系統(tǒng)引擎事件,主要用于監(jiān)聽SQLServer系統(tǒng)的運行性能。

9、聯(lián)機叢書(BookOnline)

SQLServer2000提供了大量的聯(lián)機文檔,用戶可以便捷地查到許多很有價值的信息。一個優(yōu)秀的SQLServer管理員必然是使用聯(lián)機文檔的高手。7.1SQLServer2000的簡介圖7.1SQLServer2000工具菜單7.2企業(yè)管理器

企業(yè)管理器(EnterpriseManager)是SQLSERVER程序組中的最重要的程序之一,是管理服務(wù)器和數(shù)據(jù)庫的主要工具??梢詮拈_始菜單命令“開始→程序→MicrosoftSQLServer→企業(yè)管理器”打開企業(yè)管理器。如圖7.27.2企業(yè)管理器

在企業(yè)管理器中包含兩個窗口,其中左側(cè)的窗口是以“樹狀目錄”顯示的活動窗口,右側(cè)是顯示內(nèi)容的窗口。1、樹狀目錄窗口

在左邊的樹狀目錄中,根節(jié)點是“控制面板根目錄”,表示它是所有服務(wù)器控制面板的根。2、內(nèi)容窗口

企業(yè)管理器右邊的窗口為內(nèi)容窗口。在該窗口中顯示的是在樹狀目錄處于“焦點”狀態(tài)(或選種狀態(tài))的條目中包含的內(nèi)容。企業(yè)管理器中的菜單分為上下兩行,其中上面一行包括“控制面版”,“窗口”和“幫助”,通過這三個菜單項可以實現(xiàn)退出企業(yè)管理器。

7.3查詢分析器

查詢分析器(QueryAnalyzer)是SQLServer提供的使用方便,界面友好的Transact-SQL語句編譯工具,是SQLServer2000客戶端應(yīng)用程序的重要組成部分。用戶可以通過“開始”菜單或從SQLServer企業(yè)管理器內(nèi)運行它。還可以通過執(zhí)行isqlw實用工具從命令提示符運行SQL查詢分析器。啟動時系統(tǒng)首先打開“連接到SQLServer”對話框,如圖7.3所示。

7.3查詢分析器圖7.3啟動查詢分析器7.3查詢分析器

圖7.4查詢分析器到哪個SQLServer服務(wù)器。選擇服務(wù)器并設(shè)置正確使用該對話框可以指定連接的身份驗證方式,單擊“確定”按鈕,即可打開SQLServer查詢分析器,如圖7.4所示7.3查詢分析器

查詢分析器左邊的窗口是“對象瀏覽器”,這個窗口是SQLServer2000中新增的窗口。該窗口包含兩個選項卡:

“對象”選項卡—用于瀏覽SQLServer中所有的數(shù)據(jù)庫對象,內(nèi)置函數(shù)和數(shù)據(jù)庫類型等;

“模版”選項卡—提供一些常用的程序模版,用戶可以在這些模版的基礎(chǔ)上進行修改,以簡化Transact-SQL語言的輸入操作。7.4.1系統(tǒng)數(shù)據(jù)庫

SQLServer2000系統(tǒng)有四種系統(tǒng)數(shù)據(jù)庫:

1.master數(shù)據(jù)庫

master數(shù)據(jù)庫記錄SQLServer系統(tǒng)的所有系統(tǒng)級別信息

2.tempdb數(shù)據(jù)庫

tempdb

數(shù)據(jù)庫保存所有的臨時表和臨時存儲過程。

3.model數(shù)據(jù)庫

model數(shù)據(jù)庫用作在系統(tǒng)上創(chuàng)建的所有數(shù)據(jù)庫的模板(包括用戶數(shù)據(jù)庫和tempdb數(shù)據(jù)庫)。

4.msdb數(shù)據(jù)庫

SQLServer企業(yè)管理器和SQLServerAgent使用Msdb數(shù)據(jù)庫來執(zhí)行安排工作和警報以及記錄操作者等操作。7.4.2實例數(shù)據(jù)庫

也存儲在SQLServer2000默認安裝目錄的Data目錄中。Pubs和Northwind數(shù)據(jù)庫可以作為SQLServer2000的學(xué)習(xí)工具。其中,pubs實例數(shù)據(jù)庫SQLServer2000有兩個實例數(shù)據(jù)庫:pubs和Northwind。與系統(tǒng)數(shù)據(jù)庫一樣,實例數(shù)據(jù)庫的文件存儲了一個虛構(gòu)的圖書出版公司的基本情況,Northwind實例數(shù)據(jù)庫包含了一個公司的銷售數(shù)據(jù),是一個虛構(gòu)的公司,該公司從事世界各地的特產(chǎn)食品進出口貿(mào)易

7.4.3創(chuàng)建數(shù)據(jù)庫

在SQLServer2000中創(chuàng)建數(shù)據(jù)庫的場所有兩處:一是在企業(yè)管理器中使用現(xiàn)成的命令和功能交互式創(chuàng)建;

二是在查詢分析器中書寫Transact-SQL語句。首先介紹如何使用企業(yè)管理器創(chuàng)建自己的用戶數(shù)據(jù)庫。使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫,可以采用兩種方法:①使用創(chuàng)建數(shù)據(jù)庫向?qū)?;②在控制面板樹上選擇數(shù)據(jù)庫,然后選擇“新建數(shù)據(jù)庫”菜單命令直接創(chuàng)建用戶數(shù)據(jù)庫。

數(shù)據(jù)庫創(chuàng)建向?qū)Ш唵我子?,但是它的使用在一定程度上限制了物理?shù)據(jù)庫的復(fù)雜程度,所以在實際操作中并不常用。因此,我們主要討論第二種方法

7.4.3創(chuàng)建數(shù)據(jù)庫在企業(yè)管理器中直接創(chuàng)建用戶數(shù)據(jù)庫的步驟如下:(1)打開企業(yè)管理器(2)在控制面板目錄中選擇“數(shù)據(jù)庫”節(jié)點如下圖7.4.3創(chuàng)建數(shù)據(jù)庫(3)在“數(shù)據(jù)庫”節(jié)點上單擊右鍵,并在彈出的菜單中選擇“新建數(shù)據(jù)庫”

(4)在“名稱”文本框中輸入數(shù)據(jù)庫的名稱。(5)點擊“數(shù)據(jù)文件”選項卡?!皵?shù)據(jù)文件”是SQLServer2000用于實際存儲數(shù)據(jù)、索引等數(shù)據(jù)庫對象的文件。(6)點擊“日志文件”選項卡指定事務(wù)日志文件的名稱。

(7)單擊“確定”按鈕,則創(chuàng)建一個新數(shù)據(jù)庫7.4.4查看數(shù)據(jù)庫信息1.用企業(yè)管理器查看數(shù)據(jù)庫信息在企業(yè)管理器窗口中查看數(shù)據(jù)庫信息的方法如下。(1)方法1:在企業(yè)管理器窗口中的左側(cè)目錄樹窗口中,展開“數(shù)據(jù)庫”文件夾,在某個數(shù)據(jù)庫名稱上先單左鍵,再單擊右鍵,在出現(xiàn)的快捷菜單中單擊“查看”中的“任務(wù)板”。(2)方法2:在企業(yè)管理器窗口中的左側(cè)目錄樹窗口中,展開“數(shù)據(jù)庫”文件夾,單擊某個數(shù)據(jù)庫名稱,然后單擊“查看”菜單,在其下拉菜單中單擊“任務(wù)板”

7.4.4查看數(shù)據(jù)庫信息

操作完成后,在企業(yè)管理器窗口右側(cè)的“任務(wù)板中看到數(shù)據(jù)庫的“常規(guī)”信息,“表”信息和“向?qū)А毙畔?。在打開數(shù)據(jù)庫文件夾目錄樹后,可以選擇各種數(shù)據(jù)庫對象進行信息瀏覽。7.4.5更改數(shù)據(jù)庫1.使用企業(yè)管理器修改數(shù)據(jù)庫的一個簡單快捷的方法是使用企業(yè)管理器,使用它修改數(shù)據(jù)庫結(jié)構(gòu)的步驟下:

(1)打開需要修改的用戶數(shù)據(jù)庫的數(shù)據(jù)庫屬性對話框。

(2)在屬性對話框中對相關(guān)內(nèi)容(如數(shù)據(jù)文件和事務(wù)日志文件的屬性)進行修改

7.4.5更改數(shù)據(jù)庫2.使用ALTERDATABASE語句修改除使用企業(yè)管理器外,還可以使用ALTERDATABASE語句修改數(shù)據(jù)庫,語法如下:ALTERDATABASEdatabase{ADDFILE〈filespec〉[,…n][TOFILEGROUPfilegroup_name]|ADDLOGFILE〈filespec〉[,…n]|REMOVEFILElogical_file_name|ADDFILEGROUPfilegroup_name|REMOVEFILEGROUPfilegroup_name|MODIFYFILE<filespec>|MODIFYFILEGROUPfile_group_namefilegroup_property}7.4.5更改數(shù)據(jù)庫

<filespec>::=(NAME=logical_file_name[,FILENAME=’os_file_name’][,SIZE=size][,MAXSIZE={vmax_size|UNLIMITED}][,FILEGROWTH=growth_increment])

各參數(shù)說明如下:(1)ADDFILE指定要增加文件到哪個文件組。(2)TOFILEGROUP指定要增加文件到哪個文件組。(3)ADDLOGFILE指定要增加的事務(wù)日志文件。(4)REMOVEFILE從數(shù)據(jù)庫系統(tǒng)表中刪除指定文件的定義并且刪除其物理文件。文件只有為空時才能被刪除。(5)ADDFILEGROUP指定要增加的文件組。(6)REMOVEFILEGROUP從數(shù)據(jù)庫中刪除指定文件組的定義并且刪除其包括的所有數(shù)據(jù)庫文件。7.4.5更改數(shù)據(jù)庫

(7)MODIFYFILE修改指定文件的文件名,容量大小,最大容量以及文件增容方式等屬性,但一次只能修改一個文件的一個屬性。使用此項時應(yīng)注意:在文件格式filespec中必須NAME明確指定文件的名稱,如果文件大小已經(jīng)確定,那么新定義的size必須比當前的文件容量大

(8)MODIFYFILEGROUPfilegroup_name{filegroup_property}用于修改文件組屬性。

[例1]

修改student數(shù)據(jù)庫的主數(shù)據(jù)文件的大小增加到15MB。7.4.5更改數(shù)據(jù)庫

ALTERDATABASEstudentMODIFYFILE(NAME='員工數(shù)據(jù)庫_dat',SIZE=15)3.更改數(shù)據(jù)庫名重命名數(shù)據(jù)庫需要使用系統(tǒng)存儲過程SP_renamedb,其語法如下:

sp_renamedb[@old_name=]'old_name',[@new_name=]'new_name'[例2]

更改student數(shù)據(jù)庫的名稱為study。

execsp_renamedb'student','study‘7.4.6刪除數(shù)據(jù)

1.用企業(yè)管理器刪除數(shù)據(jù)庫2.用DROPDATABASE命令刪除數(shù)據(jù)庫

[例3]

刪除數(shù)據(jù)庫student。

DROPDATABASEstudent7.4.7壓縮數(shù)據(jù)庫

數(shù)據(jù)庫在使用一段時間后時常會出現(xiàn)因數(shù)據(jù)刪除而造成數(shù)據(jù)庫中空閑空間太多的情況,這時就需要減少分配給數(shù)據(jù)庫文件和事務(wù)日志文件的磁盤空間,以免浪費磁盤空間。當數(shù)據(jù)庫中沒有數(shù)據(jù)時,可以修改數(shù)據(jù)庫文件屬性,直接改變其占用空間;但當數(shù)據(jù)庫中有數(shù)據(jù)時,這樣做會破壞數(shù)據(jù)庫中的數(shù)據(jù)。因此需要使用壓縮的、式來縮減數(shù)據(jù)庫空間。對數(shù)據(jù)庫可以進行自動壓縮,也可以進行人工壓縮。7.4.7壓縮數(shù)據(jù)庫1自動壓縮數(shù)據(jù)庫

2

人工壓縮數(shù)據(jù)庫(1)使用企業(yè)管理器壓縮

在企業(yè)管理器界面下在要被壓縮大小的數(shù)據(jù)庫上選擇單擊鼠標右鍵,在快捷菜單中選取所有任務(wù)→收縮數(shù)據(jù)庫,

(2)用DBCCSHRINKDATABASE命令壓縮數(shù)據(jù)庫大小除了利用企業(yè)管理器來壓縮數(shù)據(jù)庫大小外,也可以使用DBCCSHRINKDATABASE命令來壓縮數(shù)據(jù)庫大小以刪除未使用使用空間。其語法格式如下:

7.4.7壓縮數(shù)據(jù)庫DBCCSHRINKDATABASE(數(shù)據(jù)庫名稱[,百分比][,{NOTRUNCATE|TRUNCATEONLY}])

說明:百分比:在數(shù)據(jù)庫被壓縮后,數(shù)據(jù)庫文件保留的空間比率

[例4]

壓縮數(shù)據(jù)庫student的未使用空間為數(shù)據(jù)庫大小50%。

dbccshrinkdatabase(student,50)

(3)使用DBCCSHRINKFILE改變數(shù)據(jù)庫文件大小

DBCCSHRINKFILE命令用于壓縮當前數(shù)據(jù)庫中的文件,其語法如下:7.4.7壓縮數(shù)據(jù)庫BCCSHRINKFILE({文件名稱|file_id},{[,新的文件大小]{EMPTYFILE|NOTRUNCATE|TRUNCATEONLDY}}))

[例5]

壓縮數(shù)據(jù)庫student中的數(shù)據(jù)文件student到1MB。

dbccshrinkfile(student,1)7.5管理數(shù)據(jù)表

創(chuàng)建了一個數(shù)據(jù)庫以后,就可以在該數(shù)據(jù)庫中創(chuàng)建表了。表是一種最重要的數(shù)據(jù)庫對象,它在數(shù)據(jù)庫中存儲數(shù)據(jù),可以創(chuàng)建自己的數(shù)據(jù)表。同時表也是用來存儲數(shù)據(jù)和操作數(shù)據(jù)的邏輯結(jié)構(gòu),其結(jié)構(gòu)和電子表格相似,有行和列組成。7.5.1用企業(yè)管理器創(chuàng)建數(shù)據(jù)表

在企業(yè)管理器中創(chuàng)建表按以下步驟進行。(1)在要創(chuàng)建表的數(shù)據(jù)庫中選擇“表”對象后,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖標,即會出現(xiàn)定義列對話框,如圖7.8所示在此可設(shè)定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。(2)將數(shù)據(jù)表中各列定義完畢后,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名后,單擊“確定”按鈕,即會將表保存到數(shù)據(jù)庫中。

7.5.2修改表1.表的重新命名(1)在企業(yè)管理器中展開希望重新命名的表所在的數(shù)據(jù)庫節(jié)點,然后選中該數(shù)據(jù)庫節(jié)點下一級菜單中的“表”節(jié)點。(2)在希望重新命名的表上單擊鼠標右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內(nèi)單擊“確定”按鈕當表創(chuàng)建好后,可以根據(jù)需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結(jié)構(gòu)

2.修改數(shù)據(jù)表結(jié)構(gòu)打開希望修改表結(jié)構(gòu)的表設(shè)計窗口,在該窗口中可以執(zhí)行下列操作:7.5.2修改表(1)改數(shù)據(jù)表中字段定義(2)插入新字段如果希望為數(shù)據(jù)表添加新的字段,可以在某字段所在的行上單擊鼠標右鍵,然后在彈

出菜單中選擇“插入列”命令,該字段前面會插入一個空白行,在空白行中編輯新字段即可。(3)刪除現(xiàn)有字段選中該字段并單擊鼠標右鍵,在彈出菜單中選擇命令“刪除列”。3.修改表格屬性在表設(shè)計窗口中單擊“表和索引屬性”按鈕,打開表格屬性窗口,在該窗口中可以設(shè)置與整個表相關(guān)的重要屬性,如“表”,“關(guān)系”,“索引/鍵”,“CHECK約束”。7.5.2修改表(1)在要創(chuàng)建表的數(shù)據(jù)庫中選擇“表”對象后,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇圖標,即會出現(xiàn)定義列對話框,如圖7.8所示在此可設(shè)定表的列名、數(shù)據(jù)類型、精度和缺省值等屬性。1)在要創(chuàng)建表的數(shù)據(jù)庫中選擇“表”對象后,單擊右鍵從快捷菜單中選擇“新建表”選項或在工具欄中選擇

(2)將數(shù)據(jù)表中各列定義完畢后,單擊工具欄中的保存按鈕,即出現(xiàn)輸入新建表名的對話框。(3)輸入表名后,單擊“確定”按鈕,即會將表保存到數(shù)據(jù)庫中。

7.5.2修改表1.表的重新命名

(1)在企業(yè)管理器中展開希望重新命名的表所在的數(shù)據(jù)庫節(jié)點,然后選中該數(shù)據(jù)庫節(jié)點下一級菜單中的“表”節(jié)點。(2)在希望重新命名的表上單擊鼠標右鍵,在彈出菜單上選擇命令“重命名”,輸入新的表名稱。(3)按回車鍵,在彈出的對話框內(nèi)單擊“確定”按鈕當表創(chuàng)建好后,可以根據(jù)需要對表的列,約束等屬性進行添加,刪除和修改。這就需要修改表結(jié)構(gòu)2.修改數(shù)據(jù)表結(jié)構(gòu)打開希望修改表結(jié)構(gòu)的表設(shè)計窗口,在該窗口中可以執(zhí)行下列操作:(1)改數(shù)據(jù)表中字段定義7.5.2修改表

(2)插入新字段

(3)刪除現(xiàn)有字段選中該字段并單擊鼠標右鍵,在彈出菜單中選擇命令“刪除列”。

3.修改表格屬性

4.用存儲過程sp_rename修改表名和列名

sp_rename存儲過程可以修改當前數(shù)據(jù)庫中用戶對象的名稱,如表,列,索引,存儲過程等。其語法如下:

7.5.2修改表

execsp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']OBJECT值指代了系統(tǒng)表sysobjects中的所有對象,如表、視圖、存儲過程、觸發(fā)器、規(guī)則和約束等。OBJECT值為默認值。

[例6]

更改s表中的列sno名稱為stusno。

execsp_rename's.sno','stusno','column'

7.5.3查看表1.查看表的屬性在企業(yè)管理器下選擇表名,單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的界面。在此界面中我們可以選擇“常規(guī)”以查看表結(jié)構(gòu),從中可以看到表的大部分屬性信息,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,文件組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結(jié)構(gòu)和類型等。在企業(yè)管理器下選擇表名,單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選取“屬性”,將會出現(xiàn)如圖7.9的界面。在此界面中我們可以選擇“常規(guī)”以查看表結(jié)構(gòu),從中可以看到表的大部分屬性信息,如數(shù)據(jù)表的名稱,所有者,創(chuàng)建日期,文件組,記錄的行數(shù),數(shù)據(jù)表中的字段名稱,結(jié)構(gòu)和類型等。

7.5.3查看表2.查看數(shù)據(jù)表中的數(shù)據(jù)在企業(yè)管理器中,用右鍵單擊要查看數(shù)據(jù)的表,從快捷菜單中選擇“打開表”,再選擇其子菜單中的“返回所有行”,如圖7.10,圖7.11所示3.用系統(tǒng)存儲過程查看表的信息

sp_help存儲過程可以提供指定的數(shù)據(jù)庫對象的信息和系統(tǒng)或用戶定義的數(shù)據(jù)類型的信息。其語法如下:

sp_help[[@objname=]name]sp_help存儲過程只用于當前的數(shù)據(jù)庫,其中[@objname=]name子句指定對象的名稱。如果不指定對象的名稱,sp_help存儲過程就會列出當前數(shù)據(jù)庫中的所有對象7.5.3查看表

對象的所有者和對象的類型,但觸發(fā)器的信息需要用sp_helptrigger存儲過程來顯示。

[例7]

顯示當前數(shù)據(jù)庫中的所有對象的信息:execsp_help。顯示student表的信息:

execsp_helpstudent7.5.4用企業(yè)管理器刪除表

在企業(yè)管理器中,用右鍵單擊要刪除的表,從快捷菜單中選擇“刪除”選項,則會出現(xiàn)刪除對象對話框;單擊“全部除去”按鈕,當有對象依賴于表時就不能刪除表了。當有對象依賴于表時就不能刪除表了。

7.5.5對表建立索引

在SQLServer中,除了使用SQL語句創(chuàng)建索引外,還用企業(yè)管理器創(chuàng)建索引。

1.

用索引創(chuàng)建向?qū)?chuàng)建索引(1)打開企業(yè)管理器,從工具欄中選擇快捷菜單“工具→向?qū)А保ㄈ鐖D7.12),打開“選擇向?qū)А睂υ捒?。?)在“選擇向?qū)А睂υ捒蛑羞x擇“數(shù)據(jù)庫→創(chuàng)建索引向?qū)А惫?jié)點,單擊“確定”按鈕(3)在創(chuàng)建索引向?qū)У臍g迎對話框中,單擊“下一步”,打開“選擇數(shù)據(jù)庫和表”對

7.5.5對表建立索引話框。(4)在“選擇數(shù)據(jù)庫和表”對話框的“數(shù)據(jù)庫名稱”一欄中選擇數(shù)據(jù)庫,在“對象名”一欄中選擇表名。這里選擇了數(shù)據(jù)庫Student中表STUDENT(如圖7.14),單擊“下一步”。(5)在“選擇列”對話框中選擇將包含在索引中的字段。這里選擇基于“DEPT”字段創(chuàng)建索引(如圖7.15),然后單擊“下一步”。(6)在“指定索引選項”對話框(如圖7.16)中設(shè)置索引選項,各個選項含義如下使其成為聚集索引:指定該索引為聚集索引。

7.5.5對表建立索引

使其成為唯一性索引:指定將該索引創(chuàng)建為唯一索引。填充因子:設(shè)置填充因子,并設(shè)置系統(tǒng)在最初創(chuàng)建索引時索引頁的填充程度。如果希望系統(tǒng)自動填充因子,請選擇“最佳”;如果希望自己設(shè)置填充因子,選擇“固定”,并在右邊輸入一個數(shù)字,該數(shù)字表示的是百分比。(7)設(shè)置完索引選項以后,單擊“下一步”,彈出“正在完成索引向?qū)А睂υ捒?,在該對話框中顯示了索引名稱和包含在索引中的字段。在這個對話框中還可以為索引重新命

2使用企業(yè)管理器創(chuàng)建索引介紹如何使用企業(yè)管理器創(chuàng)建和管理索引。(1)選擇表“STUDENT”,單擊鼠標右鍵。在彈出菜單中選擇命令“所有任務(wù)→

7.5.5對表建立索引

(2)在“管理索引”對話框中從“數(shù)據(jù)庫”下拉菜單中選擇數(shù)據(jù)庫student,從“表/視圖”下拉菜單中選擇表[dbo].[STUDENT](如圖7.19)(3)此時在“現(xiàn)有索引”的列表框中會列出表s中現(xiàn)存的索引。本例在“SNO”字段上創(chuàng)建一個新的索引,所以選擇“新建”按鈕,彈出“新建索引”對話框。(4)在“新建索引”對話框的索引名稱文本框中輸入索引名稱,然后選擇字段“SNO”并設(shè)置索引屬性(5)設(shè)置索引選項后,單擊“確定”按鈕即可。

3.查看和修改索引(1)用企業(yè)管理器查看和修改索引

(2)用sp_helpindex存儲過程查看索引7.5.5對表建立索引[例8]

查看S表的索引。

execsp_helpindexS4.用sp_rename存儲過程更改索引名稱

[例9]

更改s表中索引insno改為dxsno。

execsp_rename's.insno','dxsno‘5.刪除索引

(1)用企業(yè)管理器刪除索引(2)用DROPINDEX命令刪除索引

DROPINDEX命令可以刪除一個或多個當前數(shù)據(jù)庫中的索引,其語法如下:7.5.5對表建立索引

DROPINDEX'tablename.indexname'[,…n]DROPINDEX命令不能刪除有CREATETABLE或ALTERTABLE命令創(chuàng)建的PRIMARYKEY或UNIQUE約束索引,也不能刪除系統(tǒng)表中的索引。

[例10]

刪除表S中的索引dxsno。

dropindexS.dxsno7.6用企業(yè)管理器管理數(shù)據(jù)

創(chuàng)建了數(shù)據(jù)庫,也創(chuàng)建了若干數(shù)據(jù)庫表了,接下來就要向表中添加數(shù)據(jù),輸入有誤時會修改數(shù)據(jù),不需要的數(shù)據(jù)要能刪除掉,這些維護數(shù)據(jù)的操作SQL命令能完成的,這里主要介紹在企業(yè)管理器中如何交互界面操作的方法。7.6.1添加數(shù)據(jù)

添加的方法是:利用前面介紹的方法打開待加入記錄數(shù)據(jù)的數(shù)據(jù)表(如圖7.11),在彈出的窗口中,單擊最后的空白行,分別向各字段中輸入新數(shù)據(jù)即可。當輸入一個新記錄的數(shù)據(jù)后,會自動在最后出現(xiàn)一新的空白行,用戶可以繼續(xù)連續(xù)輸入多個記錄的數(shù)據(jù)7.6.2刪除數(shù)據(jù)

在SQLServer中,除使用DELETE語句刪除數(shù)據(jù)表中的記錄數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看數(shù)據(jù)表的數(shù)據(jù)時刪除數(shù)據(jù),但這種方式比較適合于刪除單個或少量的記錄等簡單情況。刪除數(shù)據(jù)的具體方法是:打開要刪除記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22的窗口中,單擊記錄左側(cè)的小方快,此時該記錄為黑色,表示已選擇了該記錄,如圖7.22所示。也可以用鼠標在記錄左側(cè)的區(qū)域上,下拖動來選擇多個記錄。此時按下Del鍵,系統(tǒng)會出現(xiàn)如圖7.23所示的對話框,提示用戶是否要刪除記錄,如果用戶單擊“是”按鈕,則記錄被刪除,如果用戶單擊“否”按鈕,則記錄將不被刪除。具體的圖見書上7.6.3修改數(shù)據(jù)

在SQLServer中,除使用UPDATE語句修改數(shù)據(jù)表中的數(shù)據(jù)外,還可以在企業(yè)管理器中,在查看數(shù)據(jù)庫表的數(shù)據(jù)時修改數(shù)據(jù),但這種方式不能應(yīng)付大量的數(shù)據(jù)修改。修改數(shù)據(jù)的方法是:打開待修改記錄數(shù)據(jù)的數(shù)據(jù)表,在如圖7.22所示的窗口中,單擊要修改的記錄,分別向各字段中輸入新數(shù)據(jù)即可,原數(shù)據(jù)被新數(shù)據(jù)覆蓋。注意:數(shù)據(jù)一旦交互更新后,將不能撤消操作。除非利用實時的日志信息來恢復(fù)。7.7數(shù)據(jù)完整性

數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫數(shù)據(jù)的正確性、有效性和相容性,SQLServer2000有全面的措施來保障數(shù)據(jù)完整性。7.7.1數(shù)據(jù)完整性概述

數(shù)據(jù)完整性(DataIntegrity)是指數(shù)據(jù)的精確性和可靠性。它是為防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數(shù)據(jù)完整性分為四類:實體完整性(EntityIntegrity),域完整性(DomainIntegrity),SQLServer提供了一些工具來幫助用戶實現(xiàn)數(shù)據(jù)完整性,其中最主要的是規(guī)則,默認,約束和觸發(fā)器7.7.2規(guī)則

.

所謂規(guī)則是指當您對表做新建或操作時該列輸入值必須符合預(yù)先設(shè)置的條件,如果不符合的話SQLServer就不會讓該條數(shù)據(jù)新建至表內(nèi)或被操作。一、利用企業(yè)管理器來管理規(guī)則首先在企業(yè)管理器主界面下利用鼠標選擇要管理規(guī)則的數(shù)據(jù)庫,將其展開。選中“規(guī)則”彈出如圖7.24的界面。如要查看某一列規(guī)則的內(nèi)容,在列規(guī)則名稱處雙擊鼠標即可如果要更改某一處規(guī)則名的話,在該列規(guī)則名稱處單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選取重命名即可。也可以在查詢分析器下執(zhí)行sp_rename來更改規(guī)則的名稱,以下是sp_rename的語法:sp_rename舊規(guī)則名稱,新規(guī)則名稱

7.7.2規(guī)則二、創(chuàng)建規(guī)則

在企業(yè)管理器主界面下利用鼠標選擇要創(chuàng)建規(guī)則的數(shù)據(jù)庫,將其展開。選取“規(guī)則”單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選取“新建規(guī)則”

在“名稱”處輸入規(guī)則的名稱,在“文本”處輸入該規(guī)則運算式。規(guī)則的條件運算式必須以局部變量名稱起頭(也即第一個字符必須為“@”),該變量名稱可以隨意取名。三、使用CREATERULE命令創(chuàng)建規(guī)則

CREATERULE命令的語法如下:CREATERULE[擁有者.]規(guī)則名稱AS條件運算式(規(guī)則的定義)。

7.7.2規(guī)則

規(guī)則的定義可以是用于WHERE條件子句中的任何表達式,可包含算術(shù)運算符,關(guān)系運算符和謂詞(如IN,LIKE,BETWEEN等)。

[例11]

創(chuàng)建學(xué)生性別規(guī)則。

createruleru_sexas@sexin('男','女')

四、用存儲過程查看規(guī)則使用sp_helptext存儲過程可以查看規(guī)則的細節(jié),其語法規(guī)則如下:

sp_helptext[@objname=]'name'

其中,[@objname=]'name'子句指明對象的名稱,sp_helptext存儲過程查看的對象可以是當前數(shù)據(jù)庫中的規(guī)則,默認,觸發(fā)器,視圖或為加密的存儲過程。

7.7.2規(guī)則[例12]

查看名稱為“ru_sex”的規(guī)則的內(nèi)容。

execsp_helptext'ru_sex'

五、規(guī)則的綁定與松綁當規(guī)則創(chuàng)建好后它必須和表內(nèi)的列綁定才可以發(fā)揮作用。要將規(guī)則定義與表列綁定,首先在企業(yè)管理器下單擊數(shù)據(jù)庫的對象“規(guī)則”,即可在右邊的窗口中看到已創(chuàng)建的規(guī)則名稱,在相應(yīng)的規(guī)則名稱上面單擊鼠標右鍵,從快捷菜單中選擇“屬性”選項,會出現(xiàn)“規(guī)則屬性”對話框在“規(guī)則屬性”對話框中,單擊“綁定UDT”按鈕,則出現(xiàn)“綁定規(guī)則到用戶自定義數(shù)據(jù)類型”的對話框,單擊“綁定列”按鈕則出現(xiàn)“將規(guī)則綁定到列”的對話框。

7.7.2規(guī)則

在該對話框中,在“表”所對應(yīng)的下拉列表中,選擇相應(yīng)的數(shù)據(jù)表(如STUDENT表),在左邊“未綁定的列”列表只能單擊要綁定的某個列(如sex),然后單擊“添加”按鈕,將該列添加到“綁定列”中,最后單擊“確定”,這時規(guī)則就被綁定到所選定的列上了。除了用企業(yè)管理器綁定規(guī)則外,還可以使用存儲過程綁定規(guī)則。

(1)存儲過程sp_bindrule可以將一個規(guī)則綁定到表的一列或一個用戶自定義數(shù)據(jù)類型上。其語法如下:

sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,'futureonly']7.7.2規(guī)則各參數(shù)說明如下:①[@rulename=]'rule'指定規(guī)則名稱。②[@objname=]'object_name'指定規(guī)則綁定的對象。③'futureonly'選項僅在綁定規(guī)則到用戶自定義數(shù)據(jù)類型上時才可以使用。當指定此選項時,只有以后使用此用戶自定義數(shù)據(jù)類型的列會應(yīng)用新規(guī)則,而當前已經(jīng)使用此數(shù)據(jù)類型的列不受影響。[例13]

綁定規(guī)則ru_sex到s表的字段sex。

execsp_bindrule'ru_sex','s.sex'

注意:規(guī)則對已經(jīng)輸入表中的數(shù)據(jù)不起作用。與表的列綁定的規(guī)則優(yōu)先于與用戶自定義數(shù)據(jù)類型綁定的規(guī)則。因此,如果表的列的數(shù)據(jù)類型與規(guī)則A綁定,同時列又與規(guī)則B綁定,則以規(guī)則B為列的規(guī)則。7.7.2規(guī)則(2)用存儲過程sp_unbindrule其語法格式如下:sp_unbindrule[@objname=]'object_name'[,'futureonly']

其中,‘futureonly’選項同綁定時一樣,僅用于用戶自定義數(shù)據(jù)類型,它指定現(xiàn)有的用此用戶自定義數(shù)據(jù)類型定義的列仍然保持與此規(guī)則的綁定。

[例14]

解除已綁定到S表的字段sex的規(guī)則ru_sex。

execsp_unbindrule'ru_sex‘六、刪除規(guī)則(1)用企業(yè)管理器刪除規(guī)則。注意:在刪除一個規(guī)則前必須先將與其綁定的對象解除綁定。

7.7.3默認

[例15]

刪除上面已創(chuàng)建的規(guī)則ru_sex。DROPRULEru_sex

所謂默認(default)是用戶輸入記錄時沒有指定具體數(shù)據(jù)的列中自動插入的數(shù)據(jù)。1創(chuàng)建默認

(1)用CREATEDEFAULT命令創(chuàng)建默認

CREATEDEFAULT命令用于在當前數(shù)據(jù)庫中創(chuàng)建默認對象,其語法如下:CREATEDEFAULTdefault_nameASconstant_expression其中,default_name是要創(chuàng)建的默認的名稱,constant7.7.3默認expression子句是默認的定義,該子句可以是數(shù)學(xué)表達式或函數(shù),也可以包含表的列名或其他數(shù)據(jù)庫對象。[例16]

創(chuàng)建年齡的默認值age_defa。CREATEDEFAULTage_defaas'20'設(shè)定默認值后,當用戶在輸入記錄數(shù)據(jù)時,如果未提供字段age的值,系統(tǒng)將自動默認其值為“20”歲。(1)用企業(yè)管理器查看默認(2)用企業(yè)管理器創(chuàng)建默認

2.查看和修改默認(1)用企業(yè)管理器查看默認

(2)用存儲過程sp_helptext查看默認使用sp_helptext存儲過程可以查看默認的信息。[例17]

查看sex_defa的默認。execsp_helptextsex_defa7.7.3默認3.默認的綁定與松綁創(chuàng)建默認后,默認僅僅是一個存在于數(shù)據(jù)庫中的對象,并未發(fā)生作用,默認同規(guī)則一樣,需要將它與數(shù)據(jù)庫表或用戶自定義對象綁定。

(1)用企業(yè)管理器管理默認的綁定用企業(yè)管理器管理默認的綁定,方法如下:在企業(yè)管理器的左側(cè)窗格中,展開相應(yīng)的數(shù)據(jù)庫目錄,數(shù)據(jù)庫的對象“默認”上面單擊右鍵,這時在右側(cè)窗格中即可看到已建立的各個默認的信息,在某個默認的名稱上面單擊右鍵,從快捷菜單中選擇“屬性”菜單項,即會出現(xiàn)“默認屬性”對話框。單擊“綁定UDT”按鈕,則出現(xiàn)“綁定默認到表的列”的對話框。用他們來管理默認與表的列以及用戶自定義數(shù)據(jù)類型之間的綁定非常方便。

7.7.3默認(2)用存儲過程sp_bindefault綁定默認存儲過程sp_bindefault可以將一個默認綁定到表的一列或一個用戶自定義數(shù)據(jù)類型上。其語法如下:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,'futureonly'][例18]綁定默認sex_defa到數(shù)據(jù)表S的sex上。execsp_bindefaultsex_defa,'S.[sex]‘4.刪除默認(1)用企業(yè)管理器刪除默認(2)使用DROPDEFAULT命令刪除默認使用DROPDEFAULT命令刪除當前數(shù)據(jù)庫中的一個或多個默認,其語法如下:DROPDEFAULT{默認名}[,…n]7.7.3默認[例19]

刪除學(xué)生性別的默認值sex_defa。DROPDEFAULTsex_defa注意:刪除一個默認值前必須先將與其綁定的對象解除綁定。7.8數(shù)據(jù)查詢

數(shù)據(jù)庫是為更方便有效的管理數(shù)據(jù)而存在的,人們希望可以隨時提供有效的所需要的數(shù)據(jù)信息。因此,對用戶來說,數(shù)據(jù)查詢是數(shù)據(jù)庫最重要的功能。在數(shù)據(jù)庫中數(shù)據(jù)查詢是通過SELECT語句來完成的。SELECT語句可以從數(shù)據(jù)庫中按用戶要求檢索數(shù)據(jù),并將查詢結(jié)果以表格的形式返回。[例20]

查詢系科為“計算機”系的學(xué)生的學(xué)號和姓名,并把查詢結(jié)果存放到變量@sno和@sn中。命令為:

declare@snovarchar(10)declare@snvarchar(10)select@sno=sno,@sn=snfromswheresept='計算機'SELECT@local_variable通常用于將單個值返回到變量中。

7.8數(shù)據(jù)查詢

如果SELECT語句返回多個值,則將返回的最后一個值賦給變量。如果SELECT語句沒有返回行,變量將保留當前值。如果expression是不返回值的標量子查詢(集合形式),則將變量設(shè)為NULL。

7.9視圖

視圖是與基本表同等重要的概念,在第3章已有介紹,這里主要介紹關(guān)于它的交互式界面7.9視圖操作與管理的內(nèi)容。7.9.1創(chuàng)建視圖一、使用創(chuàng)建視圖向?qū)褂脛?chuàng)建視圖向?qū)?chuàng)建視圖的步驟如下:(1)打開企業(yè)管理器,選擇工具→向?qū)?,打開“選擇向?qū)А睂υ捒?,在“選擇向?qū)А睂υ捒蛑姓归_“數(shù)據(jù)庫”節(jié)點,并選擇它的下一級節(jié)點“創(chuàng)建視圖向?qū)А?,單擊“確定”按鈕繼續(xù)(如圖7.31所示),此時會出現(xiàn)“歡迎使用創(chuàng)建視圖向?qū)А睂υ捒?,在該對話框中單擊“下一步”。?)在如圖7.32的窗口中選擇需要的數(shù)據(jù)庫,單擊“下一步”。這里選擇student數(shù)據(jù)庫。

7.9.1創(chuàng)建視圖

(3)在如圖7.33所示的窗口中選擇數(shù)據(jù)庫的對象,方法是在選擇對象的“包含在視圖中”中選種復(fù)選框,單擊“下一步”。(4)選擇將在視圖中顯示的所有字段,單擊“下一步?!保?)在“定義限制”窗口中輸入WHERE語句(如圖7.34)所示(6)在“命名視圖”中輸入視圖名稱。(7)在“完成創(chuàng)建視圖向?qū)А睂υ捒蛑袉螕簟按_定”即可。二、在企業(yè)管理器中交互式創(chuàng)建視圖在企業(yè)管理器中,展開指定的數(shù)據(jù)庫,點按“視圖”,按鼠標右鍵,從彈出的快捷菜單中選擇“新建視圖”菜單項;

7.9.2管理視圖一、查看和修改視圖(1)方法1①啟動企業(yè)管理器,登錄到指定的服務(wù)器。

②打開要查看或修改視圖的數(shù)據(jù)庫文件夾,選種“視圖”圖標,此時在右面的窗格中顯示當前數(shù)據(jù)庫的所有視圖。

③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“屬性”菜單項,打開“視圖屬性”對話框。

④在該對話框內(nèi)可瀏覽到該視圖的SQL文本,也可以對該視圖進行修改,然后單擊“檢查語法”按鈕來對語句合法性進行檢查。若要對視圖的訪問權(quán)限進行設(shè)置,單擊“權(quán)限”即可。(2)方法27.9.2管理視圖②打開要查看或修改視圖的數(shù)據(jù)庫文件夾,選種“視圖”圖標,此時在右面的窗格中顯示當前數(shù)據(jù)庫的所有視圖。

③在右面窗格中,用右鍵單擊要查看的視圖,在彈出的菜單中選擇“設(shè)計視圖”菜單項,可即時進入到設(shè)計視圖的窗口,

④在該窗口中可按照創(chuàng)建視圖的方法對原有的視圖進行各種修改。二、使用存儲過程在SQLServer中有三個用于了解視圖信息的關(guān)鍵存儲程,即sp_depends,sp_help和sp_helptext。其語法格式如下:sp_depends[@objname=]'object'

參數(shù):[@objname=]'object'下面的命令列出依賴

Student表的數(shù)據(jù)庫對象。7.9.2管理視圖EXECsp_depends'Student'

三、刪除視圖除了SQL命令刪除視圖外,在SQLServer中,通過企業(yè)管理器也可刪除視圖。(1)啟動企業(yè)管理器,登錄到指定的服務(wù)器。(2)打開要刪除視圖的數(shù)據(jù)庫文件夾,選種“視圖”,此時在右面的窗格中顯示當前數(shù)據(jù)庫的所有視圖。(3)在右窗格中,用右鍵單擊要刪除的視圖,在彈出菜單中選擇“刪除”菜單項即可刪除視圖。7.10備份和還原

數(shù)據(jù)庫的備份和還原是維護數(shù)據(jù)庫的安全性和完整性的重要組成部分。通過備份數(shù)據(jù)庫,可以防止因為各種原因而造成的數(shù)據(jù)破壞和丟失。還原是指在造成數(shù)據(jù)丟失和破壞以后利用備份來恢復(fù)數(shù)據(jù)的操作。7.10.1備份和還原概念

備份和還原是SQLServer的重要組成部分。備份是對SQLServer數(shù)據(jù)庫或事務(wù)日志進行復(fù)制,數(shù)據(jù)庫備份記錄了在進行備份這一操作時數(shù)據(jù)庫中所有數(shù)據(jù)的狀態(tài),如果數(shù)據(jù)庫因意外而損壞,這些備份文件將在數(shù)據(jù)庫還原時用來還原數(shù)據(jù)庫。

一、數(shù)據(jù)庫備份的類型7.10.1備份和還原概念SQLServer2000提供了四種主要的備份方式:數(shù)據(jù)庫備份,事務(wù)日志備份,差異備份,文件和文件組備份。下面分別介紹:(1)數(shù)據(jù)庫備份數(shù)據(jù)庫備份是指對數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)以及數(shù)據(jù)庫對象。

(2)事務(wù)日志備份事務(wù)日志備份是指對數(shù)據(jù)庫發(fā)生的事務(wù)進行備份,包括從上次進行事務(wù)日志備份,差異備份和數(shù)據(jù)庫完全備份之后,所有已經(jīng)完成的事務(wù)。(3)差異備份

7.10.1備份和還原概念

差異備份是指將最近一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化備份起來。

(4)文件和文件組備份文件或文件組備份是指對數(shù)據(jù)庫文件或文件組進行部分,但它不象完整的數(shù)據(jù)庫備份那樣同時也進行事務(wù)日志備份。使用該備份方法可提高數(shù)據(jù)庫還原的速度,因為它僅對遭到破壞的文件或文件組進行還原。二、備份和還原的策略(1)如果只進行數(shù)據(jù)庫備份,那么將無法還原自最近一次數(shù)據(jù)庫備份以來數(shù)據(jù)庫中所發(fā)生的所有事務(wù)。

7.10.1備份和還原概念

(2)如果在進行數(shù)據(jù)庫備份時也進行事務(wù)日志,那么可以將數(shù)據(jù)庫還原到失敗點。從以上問題可以看出,對數(shù)據(jù)庫一致的要求程度成為我們選擇備份方案的主要的普遍性的問題。另外需要注意的是我們在備份時要決定應(yīng)使用哪種備份設(shè)備,如磁盤或磁帶,并且決定如何在備份設(shè)備上創(chuàng)建備份,比如將備份添加到備份設(shè)備上或?qū)⑵涓采w。

7.10.2創(chuàng)建備份和還原

在進行備份前必須先創(chuàng)建備份設(shè)備。備份設(shè)備是用來存儲數(shù)據(jù)庫、事務(wù)日志或文件和文件組備份的存儲介質(zhì)。

1.如何創(chuàng)建磁盤備份設(shè)備(企業(yè)管理器)

①展開服務(wù)器組,然后展開服務(wù)器。

②展開"管理"文件夾,右擊"備份",然后單擊"新建備份設(shè)備"命令。如圖7.367.10.2創(chuàng)建備份和還原③在“名稱”框中輸入該命名備份設(shè)備的名稱。

④單擊"文件名",然后執(zhí)行下列操作之一:輸入磁盤備份設(shè)備所使用的文件名。單擊瀏覽(“...”)按鈕顯示“備份設(shè)備位置”對話框,再選擇磁盤備份設(shè)備所使用的本地計算機上的物理文件。

2.如何刪除備份設(shè)備(使用企業(yè)管理器)

①展開服務(wù)器組,然后展開服務(wù)器。

②展開"管理"文件夾,然后單擊"備份"。

③在詳細信息窗格中,右擊要刪除的命名備份設(shè)備。7.10.2創(chuàng)建備份和還原

④單擊"刪除"命令并確認刪除。使用存儲過程管理備份設(shè)備:(1)使用sp_addumpdevice創(chuàng)建備份設(shè)備sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}][例21]下面的示例添加一個名為

MYDISKD的磁盤備份設(shè)備。

USEmasterEXECsp_addumpdevice'disk','mydiskd','c:\dump\dump1.bak'7.10.2創(chuàng)建備份和還原[例22]

下面的示例顯示一個遠程磁盤備份設(shè)備。USEmasterEXECsp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'[例23]

下面的示例添加TAPEDUMP1設(shè)備,其物理名稱為\\.\Tape0。USEmasterEXECsp_addumpdevice'tape','tapedump1','\\.\tape0'7.10.2創(chuàng)建備份和還原

sp_dropdevice刪除備份設(shè)備,其語法格式為:

sp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中,[@logicalname=]'device'數(shù)據(jù)庫設(shè)備或備份設(shè)備的邏輯名稱,device

的數(shù)據(jù)類型為

sysname,沒有默認值。[@delfile=]'delfile'指出是否應(yīng)該刪除物理備份設(shè)備文件。[例24]下面的示例從SQLServer除去TAPEDUMP1磁帶轉(zhuǎn)儲設(shè)備。sp_dropdevice'TAPEDUMP1'

7.10.3數(shù)據(jù)庫備份

在SQLServer中無論是數(shù)據(jù)庫備份,還是事務(wù)日志備份,差異備份,文件和文件組備份都執(zhí)行同樣的步驟,。(1)展開服務(wù)器組,然后展開服務(wù)器。(2)展開“數(shù)據(jù)庫”文件夾,右擊數(shù)據(jù)庫,指向“所有任務(wù)”子菜單,然后單擊“備份數(shù)據(jù)庫”命令。如圖7.38

(3)在該對話框中的“常規(guī)“選項卡中的”備份“選項欄內(nèi)選擇要進行備份的類型。(4)通過“添加“按鈕來選擇備份的設(shè)備。(5)若選擇了“重寫“選項欄中的重寫現(xiàn)有媒體,則將原備份覆蓋。

(6)“調(diào)度”復(fù)選框,可對備份的時間表進行設(shè)置。7.10.4還原數(shù)據(jù)庫1.

展開服務(wù)器組,然后展開服務(wù)器。2.

展開“數(shù)據(jù)庫”文件夾,右擊數(shù)據(jù)庫,指向“所有任務(wù)”子菜單,然后單擊“還原數(shù)據(jù)庫”命令。在“還原為數(shù)據(jù)庫”框中,如果要還原的數(shù)據(jù)庫名稱與顯示的默認數(shù)據(jù)庫名稱不同,請在其中進行輸入或選擇。單擊“數(shù)據(jù)庫”。5.

在"要還原的第一個備份"列表中,選擇要還原的備份集。6

.

在"還原"列表中,單擊要還原的數(shù)據(jù)庫備份。7.10.4還原數(shù)據(jù)庫

單擊"選項"選項卡并執(zhí)行下列操作:(可選)①在"還原為"中輸入組成數(shù)據(jù)庫備份的各數(shù)據(jù)庫文件的新名稱或新位置。②單擊"使數(shù)據(jù)庫可以繼續(xù)運行,但無法還原其它事務(wù)日志",如果沒有其它要應(yīng)用的事務(wù)日志或差異數(shù)據(jù)庫備份。③如果要應(yīng)用另一個事務(wù)日志或差異數(shù)據(jù)庫備份,則單擊"使數(shù)據(jù)庫不再運行,但能還原其它事務(wù)日志"。

7.在設(shè)置完選項后,單擊“確定“即可。

7.10.5備份和還原系統(tǒng)數(shù)據(jù)庫

系統(tǒng)數(shù)據(jù)庫保存了有關(guān)SQLServer的許多重要數(shù)據(jù)相信,這些數(shù)據(jù)的丟失將給系統(tǒng)帶來極為嚴重的后果。所以我們也必須對數(shù)據(jù)庫進行備份。這樣一旦系統(tǒng)或數(shù)據(jù)庫丟失,則可以通過還原來重建系統(tǒng)數(shù)據(jù)庫。在SQLServre中,重要的系統(tǒng)數(shù)據(jù)庫主要有master,msdb,model。雖然tempdb也是系統(tǒng)數(shù)據(jù)庫,但沒有必要對其進行備份,因為SQLServre每次啟動都會重新創(chuàng)建該數(shù)據(jù)庫,而當SQLServer停止運行時,tempdb數(shù)據(jù)庫中所有數(shù)據(jù)都會被自動清除。在這里我們主要討論master數(shù)據(jù)庫的備份和還原問題。7.10.5備份和還原系統(tǒng)數(shù)據(jù)庫(1)增加或刪除用戶數(shù)據(jù)庫。但是如果增加或刪除文件或文件組,或用戶數(shù)據(jù)庫自動增加來容納新添加的數(shù)據(jù),這些操作并不對master數(shù)據(jù)庫產(chǎn)生影響,所以此時不必對它進行備份。(2)創(chuàng)建新的登錄或執(zhí)行與登錄有關(guān)的操作。但是增加數(shù)據(jù)庫用戶并不影響master數(shù)據(jù)庫。(3)更改任何服務(wù)器范圍的配置選項或數(shù)據(jù)庫配置選項。(4)創(chuàng)建或刪除備份設(shè)備。(5)為進行分布式查詢或遠程過程調(diào)用而對數(shù)據(jù)庫服務(wù)器進行配置,如增加連接服務(wù)器或遠程登錄等7.10.5備份和還原系統(tǒng)數(shù)據(jù)庫

使用RebuildMasterUtility來重建master數(shù)據(jù)庫,主要執(zhí)行以下步驟。(1)關(guān)掉SQLServer,然后運行位于“…/MicrosoftSQLServer/80/tools/Binn”下的Rebuildm.exe文件,出現(xiàn)“重建master”對話框。(2)在出現(xiàn)的對話框中單擊“瀏覽”按鈕來瀏覽包括Data文件的源目錄。(3)單擊“設(shè)置”按鈕出現(xiàn)“排序規(guī)則設(shè)置”對話框。(4)單擊“重建”按鈕來重建master數(shù)據(jù)庫。將數(shù)據(jù)庫移到另外的服務(wù)器或磁盤上需要進行以下操作。7.10.5備份和還原系統(tǒng)數(shù)據(jù)庫(1)拆開數(shù)據(jù)庫(2)把數(shù)據(jù)庫文件(數(shù)據(jù)庫文件和事務(wù)日志文件)移到另外的服務(wù)器或磁盤上。(3)連接服務(wù)器并定義數(shù)據(jù)庫文件的存放位置。在SQLServer中,拆開數(shù)據(jù)庫使用的Transact-SQL命令是sp_detach_db,其語法格式為:sp_detach_db[@dbname=]'dbname'[,[@skipchecks=]'skipchecks']

其中,@dbname表示數(shù)據(jù)庫名稱;@skipchecks如果為True將修改關(guān)于數(shù)據(jù)庫的所有統(tǒng)計表,反之則不修改。

7.10.5備份和還原系統(tǒng)數(shù)據(jù)庫[例25]

拆開pubs數(shù)據(jù)庫。

execsp_detach_db'pubs','true'

使用sp_attach_db來重新連接數(shù)據(jù)庫,其語法格式為:

sp_attach_db[@dbname=]'dbname',[@filename1=]'filename_n'[…16][例26]重新連接pubs數(shù)據(jù)庫

execsp_attach_db@dbname=N'pubs','c:\mssql7\data\pubs.mdf','c:\mssql7\data\pubs.log'7.11SQLServer程序設(shè)計初步*

Transact-SQL語言是SQLServer對標準SQL語言的擴充,如:引入了程序設(shè)計的思想,增強了程序的流程控制語句等。因此,在Transact-SQL語言中,標準的SQL語句可暢通無阻。Transact-SQL語言最主要的用途是設(shè)計服務(wù)器的能夠在后臺執(zhí)行的程序塊,如:存儲過程,觸發(fā)器等。7.11.1Transact-SQL簡介一、在Transact-SQL中可以使用兩種變量:局部變量和全局變量

1.局部變量局部變量是用戶可以自定義的變量,它的作用范圍僅在程序內(nèi)部。局部變量在程序中通常用來存儲從表中查詢到的數(shù)據(jù),或當做程序執(zhí)行過程中暫存變量。局部變量必須以@開頭,而且必須先用DECLARE命令說明后才可使用。其語法形式如下:

DECLARE@變量名變量類型[,@變量名變量類型……]

其中變量類型可以是SQLServer2000支持的所有數(shù)據(jù)類型。7.11.1Transact-SQL簡介

在Transact-SQL中不能像在一般的程序語言中一樣使用“變量=變量值”來給變量賦值,必須使用SELECT或SET命令來設(shè)定變量的值。其語法如下:

SELECT@局部變量=變量值

SET@局部變量=變量值例27]

聲明兩個變量并賦值。

USENorthwind

GODECLARE@FirstNameVariableNVARCHAR(20),@RegionVariableNVARCHAR(30)SET@FirstNameVariable=N'Anne'SET@RegionVariable=N'WA'7.11.1Transact-SQL簡介2.全局變量全局變量是SQLServer2000系統(tǒng)內(nèi)部使用的變量,其作用范圍并不局限于某一程序,而是任何程序均可隨時調(diào)用。全局變量通常存儲一些SQLServer2000的配置設(shè)定值和效能統(tǒng)計數(shù)據(jù)。用戶可在程序中用全局變量來測試系統(tǒng)的設(shè)定值或Transact-SQL命令執(zhí)行后的狀態(tài)值。全局變量不是由用戶的程序定義的,而是有系統(tǒng)定義和維護的,只能使用預(yù)先說明及定義的全局變量。引用全局變量時必須以“@@”開頭。SQLServer提供的全局變量共有33個,但并不是每個都可用,而且局部變量與全局變量不能同名。否則會在應(yīng)用中出錯。

7.11.1Transact-SQL簡介3.注釋符在Transact-SQL中可使用兩類注釋符:(1)ANSI標準的注釋符“--”用于單行注釋;(2)與C語言相同的程序注釋符號,即“/*……*/”,“/*”用于程序注釋開頭,“*/”用語程序注釋結(jié)尾,可以在程序中多行文字標示為注釋。二、流程控制語句

1.BEGIN…END1.BEGIN…END語句用于將多個Transact-SQL語句組合為一個邏輯塊。

7.11.1Transact-SQL簡介其語法格式如下:BEGIN<命令行或程序塊>ENDBEGIN和END語句必須成對使用:任何一條語句均不能單獨使用。BEGIN語句行后為Transact-SQL語句塊。最后,END語句行指示語句塊結(jié)束。BEGIN和END語句用于下列情況:(1)WHILE循環(huán)需要包含語句塊。(2)CASE函數(shù)的元素需要包含語句塊。(3)IF或ELSE子句需要包含語句塊。BEGIN...END語句塊允許嵌套。

7.11.1Transact-SQL簡介2.IF…ELSEIF…ELSE的語法格式如下:IF<條件表達式><命令行或程序塊>ELSE<條件表達式><命令行或程序塊>

IF語句用于條件的測試。結(jié)果流的控制取決于是否指定了可選的ELSE語句:

(1)指定IF而無

ELSE:IF語句取值為TRUE時,執(zhí)行IF語句后的語句或語句塊。IF語句取值為FALSE時,跳過IF語句后的語句或語句塊。

2.IF…ELSEIF…ELSE的語法格式如下:IF<條件表達式><命令行或程序塊>ELSE<條件表達式><命令行或程序塊>IF語句用于條件的測試。結(jié)果流的控制取決于是否指定了可選的ELSE語句:

(1)指定IF而無ELSE:IF語句取值為TRUE時,執(zhí)行IF語句后的語句或語句塊。IF語句取值為FALSE時,跳過IF語句后的語句或語句塊。7.11.1Transact-SQL簡介[例29]下面的示例顯示帶有語句塊的IF條件。如果DB原理書的平均價格不低于15元,那么就顯示文本:DB原理書的總價高于15元。

USEpubsIF(SELECTAVG(price)FROMtitlesWHEREname='DB原理')<15BEGINPRINT'書價不正確!'ENDELSEPRINT'DB原理書的總價高于15元'

7.11.1Transact-SQL簡介3.CASE計算條件列表并返回多個可能結(jié)果表達式之一。CASE具有兩種格式:(1)簡單CASE函數(shù)將某個表達式與一組簡單表達式進行比較以確定結(jié)果。(2)CASE搜索函數(shù)計算一組布爾表達式以確定結(jié)果。兩種格式都支持可選的ELSE參數(shù)。CASE的語法格式為:格式1:CASE<運算式>WHEN<運算式>THEN<運算式>…7.11.1Transact-SQL簡介WHEN<運算式>THEN<運算式>[ELSE<運算式>]END該語句的執(zhí)行過程是:將CASE后面表達式的值與各WHEN子句中的表達式的值進行比較,如果二者相等,則返回THEN后的表達式的值,然后跳出CASE語句,否則返回ELSE子句中的表達式的值。ELSE子句是可選項。當CASE語句中不包含ELSE子句時,如果所有比較失敗,CASE語句將返回NULL。[例30]

從學(xué)生表S中,選取SNO,SEX,如果SEX為“男”則輸出“M”,如果為“女”則輸出“F”。

7.11.1Transact-SQL簡介SELECTSNO,SEX=CASESEXWHEN'男'THEN'M'WHEN'女'THEN'F'ENDFROMS格式2:CASEWHEN<條件表達式>THEN<運算式>…WHEN<條件表達式>THEN<運算式>END7.11.1Transact-SQL簡介[例31]

從SC表中查詢所有同學(xué)選課成績情況,凡成績?yōu)榭照咻敵觥叭笨肌保∮?0分的輸出“不及格”,60分至70分輸出“及格”,70分至90分輸出“良好”,大于或等于90分的輸出“優(yōu)秀”。SELECTSNO,CNO,SCORE=CASEWHENSCOREISNULLTHEN'未考'WHENSCORE<60THEN'不及格'WHENSCOREBETWEEN60AND69THEN'及格'WHENSCOREBETWEEN70AND89THEN'良好'WHENSCORE>=90THEN'優(yōu)秀'7.11.1Transact-SQL簡介4.WHILE…CONTINUE…BREAK

只要指定的的條件為真,則WHILE語句重復(fù)語句或語句塊。BREAK語句退出最內(nèi)層WHILE循環(huán),CONTINUE語句重新開始WHILE循環(huán)。如果沒有其它行可以處理,則程序可能執(zhí)行BREAK語句。如果要繼續(xù)執(zhí)行代碼,則可執(zhí)行CONTINUE語句。

WHILE…CONTINUE…BREAK的語法格式如下:

WHILE<條件表達式>BEGIN<命令行或程序塊>7.11.1Transact-SQL簡介

5.WAITFORWAITFOR命令用來暫時停止程序執(zhí)行,直到所設(shè)定的等待時間已過或所設(shè)定的時間已到才繼續(xù)往下執(zhí)行。其中“時間”必須為DATETIME類型的數(shù)據(jù),但不能包括日期。各關(guān)鍵字含義如下:(1)DELAY:用來設(shè)定等待的時間,最多可達24小時(2)TIME:用來設(shè)定

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論