SQLSERVER2000使用手冊(cè)范本_第1頁(yè)
SQLSERVER2000使用手冊(cè)范本_第2頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MicrosoftSQLSERVER2000 使用手冊(cè) 在網(wǎng)絡(luò)環(huán)境下進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用開發(fā),需要選擇具體的DBMS。本章首先介紹當(dāng)前流行的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)MicrosoftSQLServer的基本知識(shí),接著以MicrosoftSQLServer2000為背景,介紹數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)的方法和SQLServer的髙級(jí)應(yīng)用技術(shù)。 1 SQLServer簡(jiǎn)介 MicrosoftSQLServer是髙性能、客戶/服務(wù)器的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)RDBMS,能夠支持大吞吐量的事務(wù)處理,也能在MicrosoftWindows2000Server網(wǎng)絡(luò)環(huán)境下管理數(shù)據(jù)的存取以及開發(fā)決策支持應(yīng)用程序。由于Micriosof

2、tSQLServer是開放式的系統(tǒng),其他系統(tǒng)可以與它進(jìn)行完好的交互操作。 1.11.1 SQLServerSQLServer20002000 的特點(diǎn)的特點(diǎn) (1) 對(duì)操作系統(tǒng)的要求低 SQLServer2000除了繼續(xù)支持Windows2000Server外, 還新增了SQLServer2000桌面版(DesktopEdition),此版本可以安裝在Windows95/98/2000專業(yè)版上,用來(lái)建立數(shù)據(jù)庫(kù),這使得SQLServer2000變得非常通用,可以在任何大小的計(jì)算機(jī)上運(yùn)行,包括膝上機(jī)、臺(tái)式機(jī)和髙檔服務(wù)器。 (2) 管理自動(dòng)化許多關(guān)鍵性的工作、數(shù)據(jù)庫(kù)調(diào)整和最佳化處理等都由系統(tǒng)自動(dòng)完成,

3、減少了人為手工調(diào)整。例 如,系統(tǒng)會(huì)動(dòng)態(tài)調(diào)整存需求,自動(dòng)縮減庫(kù)和增加數(shù)據(jù)庫(kù)所占文件的空間大小,自動(dòng)更新統(tǒng)計(jì)數(shù)據(jù)等等。 (3) 新的EnterpriseManager 它以MMC(MicrosoftManagementConsole)為基礎(chǔ)加以設(shè)計(jì),其界面和其他微軟服務(wù)器產(chǎn)品一致,看上去很像Windows的資源管理器。 (4) 簡(jiǎn)化了SQLServer2000數(shù)據(jù)庫(kù)與Windows文件系統(tǒng)之間的關(guān)系,具有更好的可伸縮性在SQLServer2000中,數(shù)據(jù)庫(kù)駐留在操作系統(tǒng)文件上,而不再位于SQLServer的邏輯設(shè)備中, 取消了以前必須先建立設(shè)備(Device),再在設(shè)備上建立數(shù)據(jù)庫(kù)的觀念,現(xiàn)在僅使

4、用CREATEDATABASE語(yǔ)句即可創(chuàng)建數(shù)據(jù)庫(kù)及其所有文件, 從而簡(jiǎn)化了數(shù)據(jù)庫(kù)設(shè)計(jì)和管理的工作。SQLServer2000允許數(shù)據(jù)庫(kù)自動(dòng)擴(kuò)展,不再需要管理員發(fā)出額外的ALTER語(yǔ)句命令。 (6)提供數(shù)據(jù)庫(kù)挖掘功能 在SQLServer2000中加入的OLAP(On-LineAnalyticalProcessing)服務(wù),可以幫助公司建立決策分析的應(yīng)用。 1.21.2 SQLServerSQLServer20002000 環(huán)境介紹環(huán)境介紹 1)1) 系統(tǒng)目錄用途介紹系統(tǒng)目錄用途介紹 若使用默認(rèn)值,安裝程序會(huì)把大部分SQLServer2000系統(tǒng)文件存放在啟動(dòng)盤的MSSQL目錄下,并且在此目錄下

5、將創(chuàng)建多個(gè)子目錄,用于存放不同的目的文件,列舉如下: BACKUP存放備份文件 Binn存放客戶端和服務(wù)器端可執(zhí)行文件與DLL文件 Data存放數(shù)據(jù)庫(kù)文件,包括系統(tǒng)數(shù)據(jù)庫(kù)、實(shí)例數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù) FTDATA存放全文索引目錄文件 Install存放有關(guān)安裝方面的信息文件 JOBS存放工作文件 LOG存放日志文件 REPLDATA存放復(fù)制數(shù)據(jù) Upgrade存放升級(jí)工具及SQLServer7升級(jí)到2000時(shí)產(chǎn)生的文件 2 2)自動(dòng)創(chuàng)建的數(shù)據(jù)庫(kù))自動(dòng)創(chuàng)建的數(shù)據(jù)庫(kù) 在安裝SQLServer2000時(shí),安裝程序會(huì)自動(dòng)創(chuàng)建4個(gè)系統(tǒng)數(shù)據(jù)庫(kù)(master、model、msdb、tempdb)和兩個(gè)例數(shù)據(jù)庫(kù)(

6、Northwind、pubs),系統(tǒng)數(shù)據(jù)庫(kù)由系統(tǒng)自動(dòng)維護(hù)。 (1)master數(shù)據(jù)庫(kù) 其中記錄了所有SQLServer2000的系統(tǒng)信息、登錄賬號(hào)、系統(tǒng)配置設(shè)置、系統(tǒng)中所有數(shù)據(jù)庫(kù)及其系統(tǒng)信息以及存貯介質(zhì)信息等。 master數(shù)據(jù)庫(kù)的數(shù)據(jù)文件為master.mdf,日志文件為mastlog.ldf。(MDF(MirrorDiscFile)文件是光盤鏡像文件的一種,我們可能經(jīng)常接觸諸如系統(tǒng)文件的ghost鏡像文件或者iso鏡像文件等。同樣的MDF文件也是一種鏡像文件,通常我們用BT或其它P2P軟件下載游戲或較大文檔的,特別是在網(wǎng)上的流傳游戲文件常以mdf文件,其實(shí)mdf文件要和mds文件搭配才能使

7、用。) (2)model數(shù)據(jù)庫(kù) 此系統(tǒng)數(shù)據(jù)庫(kù)是SQLServer2000為用戶創(chuàng)建數(shù)據(jù)庫(kù)提供的模板數(shù)據(jù)庫(kù),每個(gè)新建的數(shù)據(jù)庫(kù)都是在一個(gè)model數(shù)據(jù)庫(kù)的副本上擴(kuò)展而生成的,所以對(duì)model數(shù)據(jù)庫(kù)的修改一定要小心。 model數(shù)據(jù)庫(kù)的數(shù)據(jù)文件為model.mdf,日志文件為modellog.ldf。 (3)msbd數(shù)據(jù)庫(kù) msdb數(shù)據(jù)庫(kù)主要用于SQLServer2000存儲(chǔ)任務(wù)計(jì)劃信息、事件處理信息、備份恢復(fù)信息以及異常報(bào)告等。 msdb數(shù)據(jù)庫(kù)的數(shù)據(jù)文件為msdbdata.mdf,日志文件為msdblog.ldf。 (4)tempdb數(shù)據(jù)庫(kù) tempdb數(shù)據(jù)庫(kù)存放所有臨時(shí)表和臨時(shí)的存儲(chǔ)程序,并且供

8、SQLServer2000存放目前使用中的表,它是一個(gè)全局的資源,臨時(shí)表和存儲(chǔ)程序可供所有用戶使用。每次SQLServer2000啟動(dòng)時(shí)它會(huì)自動(dòng)重建并且重設(shè)為默認(rèn)大小,使用中它會(huì)依需求自動(dòng)增長(zhǎng)。 (5)Northwind數(shù)據(jù)庫(kù) Northwind是SQLServe2000提供的例數(shù)據(jù)庫(kù),它包含一個(gè)稱為NorthwindTraders公司的銷售數(shù)據(jù)庫(kù)。 (6)pubs數(shù)據(jù)庫(kù)。 pubs數(shù)據(jù)庫(kù)也是SQLServer2000提供的例數(shù)據(jù)庫(kù),它包含一個(gè)書籍出版公司的數(shù)據(jù)庫(kù)例。 3 3)SQLServeSQLServe20002000 提供的主要服務(wù)提供的主要服務(wù) (1)MSSQLServer:運(yùn)行SQ

9、LServer的服務(wù)。它管理著存儲(chǔ)數(shù)據(jù)庫(kù)的所有文件,處理所有客戶應(yīng)用傳送來(lái)的T-SQL命令,執(zhí)行其他服務(wù)器上的存儲(chǔ)過(guò)程,并支持從多個(gè)不同數(shù)據(jù)源獲取數(shù)據(jù)的分布式查詢。 (2)SQLServerAgent:管理SQLServer周期性行為的安排, 并在發(fā)生錯(cuò)誤時(shí)通知系統(tǒng)管理員。它包括作業(yè)(Jobs)、警告(Alerts)和操作員(Operator)三部分。 (3)MicrosoftServerService:個(gè)全文本索引和搜索引擎。 它可以在所選表列上創(chuàng)建有關(guān)詞匯的特殊索引,T-SQL語(yǔ)言可以利用這些索引來(lái)支持語(yǔ)言搜索和近似搜索。 (4)MSDTC(MicrosoftDistributedTran

10、sactionCoordinator):管理包含不同數(shù)據(jù)源的事務(wù)。它可以正確提交分布式事務(wù),以確保所有服務(wù)器上的修改都被保存或回退。 其中,SQLServe、SQLServerAgent和MSDTC可作為WindowsNT/2000服務(wù)來(lái)運(yùn)行,MicrosoftServerService服務(wù)只能運(yùn)行在WindowNT/2000Server上o 1.31.3 SQLServerSQLServer20002000 的工具介紹的工具介紹 1)1) 服務(wù)管理器服務(wù)管理器(ServiceManager(ServiceManager) ) SQLServer的服務(wù)管理器用來(lái)啟動(dòng)、停止和暫停SQLServe

11、r過(guò)程。必須在進(jìn)行任何數(shù)據(jù)庫(kù)操作前啟動(dòng)SQLServer。服務(wù)管理器可以從SQLServer的程序組中進(jìn)行啟動(dòng)。如圖1所示。 衣的丈越 粧豈屮牛敘J$5I:, 圖1SQLServer的啟動(dòng) 啟動(dòng)后的SQLServer服務(wù)管理器對(duì)話框如圖2所示。對(duì)服務(wù)(MSSQLServer、SQLServerAgent和MSDTC)的選擇可用服務(wù)(Services)列表。雙擊綠、黃、紅交通燈,就可以達(dá)到啟動(dòng)開始/繼續(xù)(Start/Continue)、暫停(Pause)和停止(Stop)的目的。 |開贈(zèng)/驍續(xù) II|皙惇世 |停止) 巫當(dāng)啟動(dòng)加時(shí)自動(dòng)啟動(dòng)服勞 正在J.蟲仃-llHKF-MSSQLServer 圖

12、2SQLServer服務(wù)管理器 2)2) 企業(yè)管理器企業(yè)管理器(EnterpriseManager)(EnterpriseManager) PfcrQKftE訂甘 OWEi_ HStO Rfc-tKcftAtriFagtrfcrtKCftMXrfcrMwftFZwfijgt rfcrMwftOfficeTcteJ!西B區(qū)祠醫(yī)rtriMCft幗| FMHALIM: rfcrtKCftg5ei0 aa- -jjjjyj*yj* 客網(wǎng)略孕用工日聘機(jī)叢書 仝業(yè)i號(hào)丑聘 1+tffia Ens中配宣鴿 LXM翊 3SQLServer巌務(wù)管連署 -Inix| 服苔器(V): 服務(wù): E UH 立如 金山鯽

13、2昶. 更網(wǎng)逮P 中如3和IU用網(wǎng)址答P輩時(shí) AciobDMfciT.Q AdctehiubdSjQ PfcrMOlt啟申 Jrttwrwt F1LWJS Bsb TrittrnetEApkrerOLifcjQkEx|kK FojonrdirfcrMwftOfficeJU PfcrQKftKISA心t擊切禪 Syb&f Uri aiA7 刷新服務(wù) 企業(yè)管理器(EnterpriseManager)是用戶管理SQLServer2000的主要工具和圖形界面, 用戶可以在這個(gè)全圖形界面的環(huán)境下建立數(shù)據(jù)庫(kù)、表、數(shù)據(jù)、視圖、存儲(chǔ)過(guò)程、規(guī)則、默認(rèn)值和用戶自定義的數(shù)據(jù)類型等功能。EnterpriseM

14、anager主界面如圖3所示。 圖3SQLServer的企業(yè)管理器 3)3) 查詢分析器查詢分析器( (QueryAnalyzer)QueryAnalyzer) 查詢分析器(QueryAnalyzer)提供的圖形界面可用來(lái)分析一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃,查看數(shù)據(jù)結(jié)果并且依查詢的方式提出最佳化的索引建立方式,以便改進(jìn)查詢效率。 例如,查詢pubs庫(kù)中表jobs的容,步驟如下: 在Windows開始菜單中執(zhí)行“程序 MicrosoftSQLServer|查詢分析器”命令, 進(jìn)入查詢分析器對(duì)話框,如圖4所示, 在查詢分析器窗口的數(shù)據(jù)庫(kù)復(fù)選框中選擇pubs庫(kù); 在命令窗口中輸入SQL語(yǔ)句:SELECT*F

15、ROMJOBS后,點(diǎn)擊ExecuteQuery按鈕,查詢結(jié)果便顯示在輸出窗口中。 圖4SQLServer查詢分析器 4)4) 其他工具其他工具(1)事件探查器可以即時(shí)監(jiān)督、捕捉、分析SQLServer2000的活動(dòng),對(duì)查詢、存儲(chǔ)過(guò)程、鎖定、事務(wù)和日志的變化進(jìn)行監(jiān)視,以及在另一個(gè)服務(wù)器上重現(xiàn)所捕獲的數(shù)據(jù)。如圖5所示。 (2) 客戶端網(wǎng)絡(luò)實(shí)用工具(ClientNetworkUtility)可以用來(lái)配置客戶端到服務(wù)器的連接。 (3) 服務(wù)器網(wǎng)絡(luò)實(shí)用工具(ServerNetworkUtility)是SQLServer2000服務(wù)器端的網(wǎng)絡(luò)配置界面。 (4) 導(dǎo)入和導(dǎo)出數(shù)據(jù)(ImportandExpor

16、tData)提供了導(dǎo)入、導(dǎo)出以及在SQLServer2000和OLEDB、ODBC及文件間轉(zhuǎn)換數(shù)據(jù)的功能。 (5) 聯(lián)機(jī)叢書(BookOnline)提供了聯(lián)機(jī)文檔,包括有關(guān)操作維護(hù)的說(shuō)明。 (6) OLAPServices提供了在線分析處理功能(需要另外安裝OLAP管理工具)。 回二J科詡計(jì)畫5 -I口口X -I棹 對(duì)S:她 MarkclingMisnqgjer FubE-Ijeh&oceM迪零側(cè) SakE班pt鹽如aiujE Dcswicr = 1J1ikpdb 泱砸象 AtqwtinxisMau理亡i Prccijittins血ftacet jcc-desc rlEWEire-Ja

17、b口sztspecified -JhietE:E匚uhi已Cthcer EsdiBE匚ipEf油沁丄l血砂曰 CufFulftflCld優(yōu)F I:l-I- 圖5創(chuàng)建跟蹤的多選項(xiàng)卡對(duì)話框 2 數(shù)據(jù)庫(kù)的創(chuàng)建、修改和刪除 2.12.1 創(chuàng)建創(chuàng)建 SQLServerSQLServer 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 通常可以采用以下3種方法來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。 1)1) 用企業(yè)管理器來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用企業(yè)管理器來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用企業(yè)管理器新建數(shù)據(jù)庫(kù)的主要步驟如下: (1)在Windows開 始 菜 單 中 執(zhí) 行 “ 程 序|MicrosoftSQLServer|企 業(yè) 管 理 器 ” 命 令 , 進(jìn) 入SQLServerEnter

18、priseManager界面。在SQLServerEnterpriseManager展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),右擊數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,如圖6所示。 圖6創(chuàng)建新的數(shù)據(jù)庫(kù) (2) 此時(shí),彈出“數(shù)據(jù)庫(kù)屬性”對(duì)話框,在“常規(guī)”選擇卡中,輸入數(shù)據(jù)庫(kù)的名稱Studb”, 對(duì)所建的數(shù)據(jù)庫(kù)進(jìn)行設(shè)置,如圖7所示。(studb的意思是創(chuàng)建數(shù)據(jù)庫(kù))。 圖7數(shù)據(jù)庫(kù)屬性對(duì)話框 ! S El盡 El a ptiii riaJi -ISK| SWfi-l且口,因ffMXtil 齢囚曼石吧工鳳11 KJEff6-7710 所音時(shí)繪 層曲直H目Sh.MkwiiJl呼即丸嚴(yán)利童中怦宀

19、0時(shí)嚇億贏庫(kù) 硼EB尅呢:Lb. tt kbrtFMrJ baviJi t)jSi 4-IT申二I夏 El_J:gi-u-E- HlJ支刪務(wù) El匸吟“州宀:樸花陽(yáng) 叫 二J辭首護(hù)日錄 日0nkTCrUlt&JLati-riis J 護(hù)皺亠-粗 H-JlHTilirkwwiMd!-7吃. -i-jr (3)如果想改變新的數(shù)據(jù)文件,單擊“數(shù)據(jù)文件”選擇卡,如圖8所示。如果要改變?cè)谖募?位置、初始大?。∕B)和文件組中提供的缺省值,單擊適當(dāng)?shù)男「褡?,并鍵入新值。 (4)可以從上面所示的選項(xiàng)中選擇、指定數(shù)據(jù)庫(kù)文件的增長(zhǎng)方式和速率。 (5)同樣可以指定數(shù)據(jù)庫(kù)文件的大小限制。 (6)同理可以

20、修改事務(wù)日志文件,單擊“事務(wù)日志”選擇卡。如果要改變?cè)谖募?、位置、初始大小(MB)和文件組中提供的缺省值,單擊適當(dāng)?shù)男「褡?,并鍵入新值。 圖8“數(shù)據(jù)文件”選擇卡 2 2)利用)利用 SQLSQL 查詢分析器來(lái)創(chuàng)建數(shù)據(jù)庫(kù)查詢分析器來(lái)創(chuàng)建數(shù)據(jù)庫(kù) 在SQL查詢分析器命令窗口中輸入創(chuàng)建數(shù)據(jù)庫(kù)的SQL語(yǔ)句后,點(diǎn)擊“執(zhí)行查詢”按鈕,就可以在輸出窗口中直接看到語(yǔ)句的執(zhí)行結(jié)果,如圖9所示。 圖9SQL查詢分析器創(chuàng)建數(shù)據(jù)庫(kù) 3)3) 利用利用“向?qū)驅(qū)А眮?lái)創(chuàng)建數(shù)據(jù)庫(kù)來(lái)創(chuàng)建數(shù)據(jù)庫(kù)利用“向?qū)А眲?chuàng)建數(shù)據(jù)庫(kù)的主要步驟如下: (1) 在SQLServerEnterpriseManager中展開SQLServer組,在菜

21、單上選擇“工具|向?qū)А?,如圖10所示。 (2) 單擊“數(shù)據(jù)庫(kù)”,再雙擊“創(chuàng)建數(shù)據(jù)庫(kù)向?qū)А保鐖D11所示。 (3) 按照?qǐng)D上的向?qū)?,一步步的選擇下去,即可創(chuàng)建數(shù)據(jù)庫(kù)。 jr * 4 HKF E.町日i;S2)muisrCtCOiliSi行云百劉 LB 立牝IMMlifltQjTftljW:W;網(wǎng)曲H 朋童圍礎(chǔ)匹CREATEDATAE陰E逬程正在磯盤凱丄lbgt上分配1MHB的空間 CREATEDATABASE進(jìn)程正在盛盤:,studbl:LoSn上分配1.00ME的空間 iTBEATEDATABASE咖thON1IAME=stuifcJaja1FILENAME=*Crtudt-_DatamdfS

22、IZE-4. MAXEI2E1U|HLEGROViTH-lJ LOGDN (NAME=suHt.Lcz.HLEtlAME=迂常嗣_BgLLFSIZE二1. FILEGP.OWTH=1呦; kr”L住訶毎斬尋也迎-A.“m心.-、“r:,W*啊.樹JEN圧最芷創(chuàng)jt.iSJEH創(chuàng)矩*劉tg.lldr.l” .-ofn*77 卜上凹豬 I 口”VLJ-: 圖10選擇“向?qū)А眲?chuàng)建數(shù)據(jù)庫(kù) 請(qǐng)選揮要使用的向?qū)? 注冊(cè)服勞器向?qū)?-數(shù)襦庫(kù) 創(chuàng)建存儲(chǔ)過(guò)程向?qū)?創(chuàng)建登錄向?qū)?I創(chuàng)建數(shù)據(jù)庫(kù)向?qū)?創(chuàng)建索引向?qū)乃饕驅(qū)?+數(shù)襦轉(zhuǎn)換巌碧 +管理 +復(fù)割 確走I職消I 圖11選擇創(chuàng)建數(shù)據(jù)庫(kù)向?qū)?2.22.2 修改數(shù)

23、據(jù)庫(kù)修改數(shù)據(jù)庫(kù) 在SQLServerEnterpriseManager中,展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),右擊studb數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“屬性”命令,此時(shí)出現(xiàn)“studb屬性”數(shù)據(jù)庫(kù)屬性對(duì)話框,在該對(duì)話框中可以查看數(shù)據(jù)庫(kù)的各項(xiàng)設(shè)置參數(shù)。 在這個(gè)對(duì)話框的前四個(gè)選項(xiàng)卡中, 可對(duì)建庫(kù)時(shí)所作的設(shè)置進(jìn)行修改, 在“選項(xiàng)”選擇卡 (如圖12所示)中還可對(duì)其他參數(shù)進(jìn)行修改。 圖12數(shù)據(jù)庫(kù)屬性對(duì)話框 2.32.3 刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù) 在SQLServerEnterpriseManager中,展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),選擇要?jiǎng)h除的數(shù)據(jù)庫(kù)名,右擊鼠標(biāo)選擇“刪除”命令,并在

24、彈出的確認(rèn)對(duì)話框中選擇“是”即可。 3 表和主鍵的創(chuàng)建 3.13.1 表的創(chuàng)建表的創(chuàng)建 利用企業(yè)管理器創(chuàng)建新表的步驟如下: (1)在SQLServerEnterpriseManager中展開SQLServer組, 再展開數(shù)據(jù)庫(kù)項(xiàng), 選擇要建表的數(shù)據(jù)庫(kù)studb,在“表”選項(xiàng)上右擊鼠標(biāo),執(zhí)行“新建表”命令,如圖13所示。 (2)在進(jìn)入的設(shè)計(jì)表的字段的窗口界面,如圖14所示。在各列中填寫相應(yīng)字段的列名、數(shù)據(jù)類型和長(zhǎng)度后,在工具條上按保存按鈕,在“選擇表名稱”對(duì)話框中輸入新的數(shù)據(jù)表名稱。pi呂QLServerErtftBrprlfiMatjagr-控制臺(tái)4SElMlcrncoftSQLStei-vs

25、XSQLServer4ffl.HKFf刪且恤| 圖13選擇“新建表”創(chuàng)建新表 圖14新建表結(jié)構(gòu) 3.23.2 主鍵的創(chuàng)建主鍵的創(chuàng)建 在創(chuàng)建的表時(shí)可以創(chuàng)建該表的主鍵,方法如下: (1)在圖14的新建數(shù)據(jù)表結(jié)構(gòu)中,選擇要設(shè)為主鍵的列SNO。 (2)在要建的主鍵列中單擊右鍵,會(huì)彈出如圖15所示的快捷菜單,選擇“設(shè)置主鍵”,就出現(xiàn)如操it兇査君加工且(D 許A$域唱電 表厲于項(xiàng)目 mojelrrcztbtarthiiMrid llyieafDUDg Elsysfiestg/gfiesL司sysforcignl-ijcys 3-syijIltcikatalDgs=JytfiJlteitnotlfy曰sy

26、andeKK司s/andmxkBys i :rs sions te; :s |::t:tztll:t:t:t:t:tztll:t:t:t- -il:t:tztil:t:tzt- -!l !l- -f f- - I吐上 2CO ZCO 2L0 2C0 3X 200 300 2L0 2C0an 百?gòu)tbHn= 臥El-El IEli- Ut里創(chuàng)建窗曲刷師:日 導(dǎo)出或康(L). 幫肪(也 zco 2L0 2C| pi呂QLServerErtftBrprlfiMatjagr-控制臺(tái)4SElMlcrncoftSQLStei-vsXSQLServer4ffl.HKFf刪且恤| 圖16所示的設(shè)置主鍵后的界面。

27、 圖15設(shè)置主鍵 圖16設(shè)置主鍵后的界面 我們也可采用在SQL查詢分析器過(guò)運(yùn)行SQL語(yǔ)句來(lái)創(chuàng)建表。 3.33.3 用用 SQLSQL 查詢分析器的命令方式來(lái)創(chuàng)建表查詢分析器的命令方式來(lái)創(chuàng)建表 可以用SQL語(yǔ)句在查詢分析器的命令方式下來(lái)創(chuàng)建數(shù)據(jù)表。進(jìn)入SQL查詢分析器窗口,連接數(shù)據(jù)庫(kù)后(在數(shù)據(jù)庫(kù)組合框中選擇studb),在“SQL查詢分析器”界面命令窗口中輸入創(chuàng)建課程表C 和成績(jī)表SC的SQL語(yǔ)句后,點(diǎn)擊“執(zhí)行查詢”按鈕,就可以在輸出窗口中直接看到語(yǔ)句的執(zhí)行結(jié)果,如圖17所示。 圖17用SQL查詢分析器的命令方式來(lái)創(chuàng)建表 4 數(shù)據(jù)的插入、修改、刪除和查詢 在SQLServerEnterprise

28、Manager中,對(duì)表進(jìn)行數(shù)據(jù)的插入、刪除、修改操作非常方便。 4.14.1 數(shù)據(jù)的插入數(shù)據(jù)的插入 (1)在SQLServerEnterpriseManager中,展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),展開要插入數(shù)據(jù)的表(如S)所在的數(shù)據(jù)庫(kù)(如studb),在選定的表上單擊右鍵,在彈出的快捷菜單中選擇“打開表|返回所有行”命令,然后出現(xiàn)數(shù)據(jù)輸入界面,在此界面上可以輸入相應(yīng)的數(shù)據(jù),如圖18所示,點(diǎn)擊“運(yùn)行”按鈕或關(guān)閉此窗口,數(shù)據(jù)都被自動(dòng)保存。 圖18數(shù)據(jù)輸入界面 (2) 用SQL語(yǔ)句插入數(shù)據(jù)的方法是:在圖18所示界面中點(diǎn)擊“SQL窗格”按鈕,出現(xiàn)圖19所示界面, 在此界面的窗口中輸入相應(yīng)的S

29、QL語(yǔ)句后, 點(diǎn)擊“運(yùn)行”按鈕, 在出現(xiàn)的對(duì)話框中選擇“確定”按鈕,即可完成數(shù)據(jù)的插入。 圖19執(zhí)行SQL語(yǔ)句插入數(shù)據(jù)上米 1 134346 6- -y y 5ssss5ssss lie盍莎剛天敏程劉孚蔣三 機(jī)化機(jī) INSERTIBTO5tSNO;SHAME,AGE;SEK;DSAME) VALUESCS10JJ刻海,19,JW/計(jì)算機(jī)) LS1_sio S3 程宏 54SFsd 19 19 1B 20 19 20 自動(dòng)化 計(jì)算機(jī) 計(jì)算機(jī)計(jì)算機(jī) 血控制臺(tái)甯口酗幫朋 酶srn (3)在SQL查詢分析器中用SQL語(yǔ)句插入數(shù)據(jù)的方法:進(jìn)入SQL查詢分析器,連接數(shù)據(jù)庫(kù)后,(在數(shù)據(jù)庫(kù)組合框中選擇stud

30、b),在SQL查詢分析器中的命令窗口中輸入SQL語(yǔ)句,再執(zhí)行該語(yǔ)句,也可實(shí)現(xiàn)數(shù)據(jù)的插入。例如向C表和SC表插入數(shù)據(jù)如圖20所示。 圖20利用SQL查詢分析器向數(shù)據(jù)表中插入數(shù)據(jù) 4.24.2 數(shù)據(jù)的修改數(shù)據(jù)的修改 在SQLServerEnterpriseManager中修改數(shù)據(jù),如同插入數(shù)據(jù)一樣進(jìn)入數(shù)據(jù)輸入界面,在此界面中對(duì)數(shù)據(jù)進(jìn)行修改后,點(diǎn)擊“運(yùn)行”按鈕或關(guān)閉此窗口,數(shù)據(jù)都被自動(dòng)保存。也可點(diǎn)擊“SQL窗格”按鈕,輸入相應(yīng)的修改數(shù)據(jù)的SQL語(yǔ)句后,點(diǎn)擊“運(yùn)行”按鈕,修改后的數(shù)據(jù)被自動(dòng)保存。 也可進(jìn)入SQL查詢分析器,啟動(dòng)SQL語(yǔ)句的輸入環(huán)境,在SQL查詢分析器中的命令窗口中輸入SQL的修改語(yǔ)句,

31、再執(zhí)行該語(yǔ)句,也可實(shí)現(xiàn)數(shù)據(jù)的修改。 4.34.3 數(shù)據(jù)的刪除數(shù)據(jù)的刪除 用上面同樣的方法,打開要?jiǎng)h除數(shù)據(jù)的表后,點(diǎn)擊“SQL窗格按鈕,輸入相應(yīng)的刪除數(shù)據(jù)的SQL語(yǔ)句后,點(diǎn)擊“運(yùn)行”按鈕,刪除數(shù)據(jù)的表被自動(dòng)保存。 同樣進(jìn)入SQL查詢分析器,啟動(dòng)SQL語(yǔ)句的輸入環(huán)境,在SQL查詢分析器中的命令窗口中輸入SQL的刪除語(yǔ)句,再執(zhí)行該語(yǔ)句,也可實(shí)現(xiàn)對(duì)數(shù)據(jù)的刪除。 4.44.4 數(shù)據(jù)的查詢數(shù)據(jù)的查詢 進(jìn)入SQL查詢分析器窗口,連接數(shù)據(jù)庫(kù)后(在數(shù)據(jù)庫(kù)組合框中選擇studb),在SQL查詢分析器中的命令窗口中輸入SQL語(yǔ)句后,點(diǎn)擊“執(zhí)行查詢按鈕,就可以在輸出窗口中直接看到語(yǔ)句的執(zhí)行結(jié)果,如圖21所示。ML査遨

32、舒折鬲-HKP.ijJb.w- 3tL!S4 liiA_-fK.|M i,riv.rWn-.PI-. 厶I氣|-cl*J I7F虜田國(guó)弋出乜西起門nIij-丨訶第Ei5|& 刑廈旳玉霧 axj Ijmisd T IB田由s.ffl3.Q 11r-|_JI-M-thmJLjT山 UrLoJb 二i用戶甬 田日Mdijmpar宙gdLi.S *S臨ELJttffiF_J砂牌H OLSKi匚J用戶定爼觥甜s3j海對(duì)曲 4 UPMZiR 5UHriSE 區(qū)u日J(rèn)flsirr何ifij? +:u致右Ess11u探臺(tái)請(qǐng)繪 4u元e?哥団斟 5I安遂S3 TuE函孩 +:u.至屜iSS由u序.悅堆計(jì)

33、函武BOtirt和ijvtGiLSRll行鼻 EU玉茨期幷尖里 襯I 1 甘鯛邑畫 HKF QiSrtW |j * if1 .-M.:J. -1:j- -;AU.;h.1r) HTi;B.Dj3(52?StlrifaD:XrW。打袒日丄列5S 飾曲時(shí)心CCGNO.CNANEGKEDIT-FKEmS詢皿呂(V廿算機(jī)基ffif.貝工如errbut-GCNaUl弦MECKEDIT衛(wèi)匸E_OTO.u血幣佇牡匸譜百T?C1牝nsertintoG;:CN0.CNAhfE?REDlT.PJtE_IN vduci, iisettULic*SC(SNO,CKOCCKEivahies怛北乜無(wú)79),mFintoS

34、CiSNOCNOgCC-KEii-ahies(SV.Cl1.SS).fistttuittSCiSNQ.OTOJKEjvahicsW.4.為;kiietrduoSCiSNO.arOOOKEjwahJEEfSl,3;76).nsertintoSCfSNCCKOUOEEvahies憐&乜節(jié)6S-.iisettuiic*SCiSNO.CKOCCBEjTHhiesCSl,DI門別 .nsertintoCi : SNOCNOSCC-REjvahicsirlhALmipubsEtudhLaipdb矗期t谿惱數(shù) +_|tUl和沁iji:|3?5?2 侏 I;二I割總!據(jù)叢型 _|配置函離 _|游転函數(shù)

35、 _J日期柯惘函離 _|埶學(xué)函數(shù) _|身冶函數(shù) _j元匾 _1旻主函敷 _1手礙爭(zhēng)圖數(shù) _J否取函St 也JLJll SELECTCNOAS課程KLAXfSCOREjAS垠高成簸丸VGlECOREAS平均成貓F(tuán)ROMSC C4ROITPBYCTSTO HAVINGCNONOTIN (SELECTCNO FROMSC WHERESCOREISNL7LL) ORDERBYCNO;! ( (.1 S 5數(shù)據(jù)庫(kù)的備份和恢復(fù) 5.15.1 數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù)的備份 v_ |HKF0)|E|=tndb|0:00:00 fj行 BJ夷1址 葩:廠 圖21SQL查詢結(jié)果 (1)在SQLServerEnterp

36、riseManager中,展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),選定要備份的數(shù)據(jù)庫(kù)(studb), 在選定的數(shù)據(jù)庫(kù)上單擊右鍵, 在彈出的快捷菜單中選擇“所有任務(wù)|備份數(shù)據(jù)庫(kù).”命令,如圖22所示。彈出一個(gè)“備份數(shù)據(jù)庫(kù)”對(duì)話框,如圖23所示。 和!?QLnvEnitrpii eM-dnay/Er-SHI&fllSS*.Microsoil&L&ervt r5SQLServerffiHjF(WindowsHT”5SJE障 蔚控制嗇口蜜幫助(也 二J 2: 顯出毀據(jù)| 能護(hù)計(jì)fakPi.生戰(zhàn)5QLMl3i(i. 査看 颶塑也建嗇口凹 圭豹野工具 Afu宦】 回 K 呼國(guó)嗎住

37、 二|密佶根目錄 自l|Mitranfi:5QL59曰目SQL55W扌 -1JjHKFtXDiDWsrijT) 所百任茅(日 申匚I安令 申Ul卻脈 a &OHetiJSfiS 導(dǎo)出列親 收綃軟據(jù)庫(kù)QX. UWt(o) if制trsBS冊(cè)口. 用戶 圖22數(shù)據(jù)庫(kù)備份菜單選擇 圖23備份數(shù)據(jù)庫(kù)對(duì)話框 (2)在圖23的“備份數(shù)據(jù)庫(kù)”對(duì)話框中,從“數(shù)據(jù)庫(kù)”選擇框中選擇需要備份的數(shù)據(jù)庫(kù),在“名稱”和“描述”中分別輸入該設(shè)備備份的名稱和簡(jiǎn)單描述。然后可以在“目的”中選擇備份的設(shè)備。單擊“添加”按鈕,彈出一個(gè)“選擇備份目的”對(duì)話框,如圖24所示。 圖24選擇備份目的對(duì)話框 (3) 從圖24的“選擇

38、備份目的”對(duì)話框中點(diǎn)擊文件名后的“”按鈕,彈出一個(gè)“備份設(shè)備位置”對(duì)話框,如圖25所示。在“備份設(shè)備”文件夾中選擇作為備份目標(biāo)的設(shè)備,在“文件名”中輸入備份的文件名(studb_back),單擊“確定”后,返回圖24所示的選擇備份目的對(duì)話框,再單 圖25備份設(shè)備位置對(duì)話框 5.25.2 數(shù)據(jù)庫(kù)的恢復(fù)數(shù)據(jù)庫(kù)的恢復(fù) (1) 在SQLServerEnterpriseManager中,展開SQLServer組,再展開數(shù)據(jù)庫(kù)項(xiàng),在數(shù)據(jù)庫(kù)項(xiàng)上單擊右鍵,在彈出的菜單中選擇“所有任務(wù)|還原數(shù)據(jù)庫(kù)”命令,彈出一個(gè)“還原數(shù)據(jù)庫(kù)”對(duì)話框。在對(duì)話框中的“還原為數(shù)據(jù)庫(kù)”輸入框中輸入需要恢復(fù)的數(shù)據(jù)庫(kù)的名稱,然后在“還原”

39、選項(xiàng)中選擇“從設(shè)備”,如圖26所示。 再?gòu)膱D26的“還原數(shù)據(jù)庫(kù)”對(duì)話框中, 單擊“選擇設(shè)備”按鈕, 彈出一個(gè)“選擇還原設(shè)備”對(duì)話框, 從中再單擊“添加”按鈕,在彈出的“選擇備份目的”對(duì)話框(圖24)中點(diǎn)擊文件名后的“”按鈕,再?gòu)膹棾龅摹皞浞菰O(shè)備位置”對(duì)話框(圖25)中的“備份設(shè)備”文件夾中選擇作為備份目標(biāo)的設(shè)備, 在“文件名”中輸入備份的文件名(studb_back), 單擊“確定”后,返回圖24所示的選擇備份目的對(duì)話框,再單擊“確定”后,則返回到“選擇還原設(shè)備”對(duì)話框,如圖27所示。這時(shí)在“還原自”選擇區(qū)域的框中就有了需要還原的備份設(shè)備,單擊“確定”返回“還原數(shù)據(jù)庫(kù)”對(duì)話框如圖28所示。 (

40、2) 選擇“選項(xiàng)”選擇卡,點(diǎn)擊“在現(xiàn)有數(shù)據(jù)庫(kù)上強(qiáng)制還原”復(fù)選框,如圖29所示。單擊確定按鈕,即可進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù)。 擊“確定”后, 則返回圖23所示的備份數(shù)據(jù)庫(kù)對(duì)話框, 這時(shí)在“目的”選擇區(qū)域的框中就有了剛才選擇的設(shè)備。如果選擇不正確,還可以通過(guò)“刪除”按鈕刪除選擇的備份設(shè)備。此外,對(duì)本對(duì)話框的“調(diào)度”參數(shù)進(jìn)行設(shè)定,可以選擇周期性地或者以后某個(gè)時(shí)刻進(jìn)行備份,設(shè)定好各個(gè)選項(xiàng)后,單擊“確定”就可以進(jìn)行備份了。 XJ 備扮設(shè)備位置一HKF _|ProgramFiles =-&MicrosoftSQLServer -_|MSSQL aDDQaaaad-a-BACKUP Elinn DataFT

41、DATA Install JOBS LOGREPLDATA Upgrade README.TXTsqlsun.dllsqlsumn.iniUninst.isu 離I取消 選定的文件: C:ProgramFilesMicrosoftSQLServerMGGC|LBACKL studL_back 圖26還原數(shù)據(jù)庫(kù)對(duì)話框 圖27選擇還原設(shè)備對(duì)話框 圖28選擇好設(shè)備的還原數(shù)據(jù)庫(kù)對(duì)話框 圖29還原數(shù)據(jù)庫(kù)“選項(xiàng)”選擇卡對(duì)話框 6高級(jí)應(yīng)用技術(shù) 6.16.1 存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程 存儲(chǔ)過(guò)程是存儲(chǔ)在服務(wù)器上的預(yù)先編譯好的SQL語(yǔ)句,可以在服務(wù)器上的SQLServer環(huán)境下運(yùn)行。由于SQLServer管理系統(tǒng)中的數(shù)據(jù)

42、庫(kù),因此最好在用戶系統(tǒng)上運(yùn)行存儲(chǔ)過(guò)程來(lái)處理數(shù)據(jù)。 存儲(chǔ)過(guò)程可以返回值、修改值,將系統(tǒng)欲請(qǐng)求的信息與用戶提供的值進(jìn)行比較。它能識(shí)別數(shù)據(jù)庫(kù),而且可以利用SQLServer優(yōu)化器在運(yùn)行時(shí)獲得最佳性能。 1 1)存儲(chǔ)過(guò)程概述)存儲(chǔ)過(guò)程概述用戶可向存儲(chǔ)過(guò)程傳遞值,存儲(chǔ)過(guò)程也可返回部表中的值,這些值在存儲(chǔ)過(guò)程運(yùn)行期間進(jìn)行計(jì) 算。 廣義上講,使用存儲(chǔ)過(guò)程有如下好處: (1)性能 因?yàn)榇鎯?chǔ)過(guò)程是在服務(wù)器上運(yùn)行的, 服務(wù)器通常是一種功能更強(qiáng)的機(jī)器, 它的執(zhí)行時(shí)間要比在工作站中的執(zhí)行時(shí)間短。另外,由于數(shù)據(jù)庫(kù)信息己經(jīng)物理地在同一系統(tǒng)中準(zhǔn)備好,因此就不必等待記錄通過(guò)網(wǎng)絡(luò)傳遞進(jìn)行處理。 存儲(chǔ)過(guò)程具有對(duì)數(shù)據(jù)庫(kù)即時(shí)的訪問,

43、這使得信息處理極為迅速。 (2)客戶服務(wù)器開發(fā)好處將客戶端和服務(wù)器端的開發(fā)任務(wù)分離,可減少完成項(xiàng)目需要的時(shí)間。用戶可獨(dú)立開發(fā)服務(wù)器端 組件而不涉及客戶端,但可在客戶方應(yīng)用程序間重復(fù)使用服務(wù)器端組件。 (3)安全性如同視圖,可使用存儲(chǔ)過(guò)程作為一種工具來(lái)加強(qiáng)安全性。可以創(chuàng)建存儲(chǔ)過(guò)程來(lái)完成所有增加、 刪除和查詢操作,并可通過(guò)編程方式控制上述操作中對(duì)信息的訪問。 (4)面向數(shù)據(jù)規(guī)則的服務(wù)器端措施這是使用智能數(shù)據(jù)庫(kù)引擎的最重要原因之一,存儲(chǔ)過(guò)程可利用規(guī)則和其他邏輯控制輸入系統(tǒng)的 信息。在創(chuàng)建用戶系統(tǒng)時(shí)要切記客戶用服務(wù)器模型。數(shù)據(jù)管理工作由服務(wù)器負(fù)責(zé),因?yàn)閳?bào)表和查詢所需的數(shù)據(jù)表述和顯示的操作在理想模型中應(yīng)

44、駐留在客戶方。從而優(yōu)化了用戶處理應(yīng)用程序的過(guò)程。 雖然SQLServer被定義為非過(guò)程化語(yǔ)言,但SQLServer允許使用流程控制關(guān)鍵字。用戶可以使用流程控制關(guān)鍵字創(chuàng)建一個(gè)過(guò)程,以便保存供后續(xù)執(zhí)行。用戶可使用這些存儲(chǔ)過(guò)程對(duì)SQLServer數(shù)據(jù)庫(kù)和其表進(jìn)行數(shù)據(jù)處理,而不必使用傳統(tǒng)的編程語(yǔ)言,如C或者C#編寫程序。 2 2)如何建立存儲(chǔ)過(guò)程)如何建立存儲(chǔ)過(guò)程 (1)用戶可以使用CREATEPROCEDURE語(yǔ)句創(chuàng)建一個(gè)存儲(chǔ)過(guò)程。在默認(rèn)的情況下,執(zhí)行所創(chuàng)建的存儲(chǔ)過(guò)程的許可權(quán)歸數(shù)據(jù)庫(kù)的擁有者。數(shù)據(jù)庫(kù)的擁有者可以改變賦給其他用戶運(yùn)行存儲(chǔ)過(guò)程的許可。 定義存儲(chǔ)過(guò)程的語(yǔ)法格式如下: CREATEPROCE

45、DUREprocedure_name:number parameterdata_typeVARYING二defaultOUTPUT,n WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FORREPLICATION ASSql_statement,n 上述語(yǔ)句中的procedure_name(存儲(chǔ)過(guò)程名)和Sql_statement(包含在存儲(chǔ)過(guò)程中的任何合法的SQL語(yǔ)句)兩個(gè)參數(shù)必須傳遞給CREATEPROCEDURE語(yǔ)句??蛇x項(xiàng)parameterdata_type表示存儲(chǔ)過(guò)程中定義的局部變量parameter,類型為data_type。關(guān)鍵字OUT

46、PUT表示允許用戶將數(shù)據(jù)直接返回到在其他處理過(guò)程中要用到的變量中。返回值是當(dāng)存儲(chǔ)過(guò)程執(zhí)行完成時(shí)參數(shù)的當(dāng)前值。為了保 存 這 個(gè) 返 回 , 在 調(diào) 用 該 過(guò) 程 時(shí)SQL調(diào) 用 腳 本 必 須 使 用OUTPUT關(guān) 鍵字WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONFORREPLICATION允許用戶選擇任何存儲(chǔ)過(guò)程和執(zhí)行過(guò)程。 (2)用SQLServerEnterpriseManager來(lái)創(chuàng)建存儲(chǔ)過(guò)程 在Windows開 始 菜 單 中 執(zhí) 行 “ 程 序|MicrosoftSQLServer企 業(yè) 管 理 器 ” 命 令 , 進(jìn) 入SQLSer

47、verEnterpriseManager界面。 在SQLServerEnterpriseManager中展開SQLServer組, 再展開數(shù)據(jù)庫(kù)項(xiàng),選擇要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù)(如studb),在“存儲(chǔ)過(guò)程”選項(xiàng)上右擊鼠標(biāo),執(zhí)行“新建存儲(chǔ)過(guò)程”命令,如圖30所示。彈出一個(gè)“新建存儲(chǔ)過(guò)程”窗口,如圖31所示,在該窗口中輸入存儲(chǔ)過(guò)程。 圖30選擇“新建存儲(chǔ)過(guò)程”創(chuàng)建存儲(chǔ)過(guò)程 !K rikSErwEr丘朮曰円雖巴MLanaqiEr-J控劇臺(tái)掘冃SQLSerwe#粗IjHONTJsJRJEtf 扯租制合 Q 曲口加蒂肋(ti)-Ulx| 存刪程D沖瑣目 叫 制臺(tái)穩(wěn)目錄 E哪rj-isoftSQLServ

48、ers白日邊1_曰捐 -3HKF(WhdWl5P|T)BCJ 城庫(kù)&:0mster!g-(yinafelmsdb:+:QrifctthzlndB-Hpubs!B-tj乩udb:時(shí)關(guān)系的is;酬楓國(guó) :CnrI :肌i二乩r和心.:區(qū)用戶定、 .TL.-tJw-pT: I萸兗軻尊馬I| 迪里遞宙口蟲 別si 導(dǎo)出列飆)“, 昨皿査薪”工BO)4 丄莒RI丨汎I娜品煜止:田(C電 舒g晉I類擔(dān)I創(chuàng)雀日朗 圖31“新建存儲(chǔ)過(guò)程”窗口 3)3) 創(chuàng)建并調(diào)用一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程舉例創(chuàng)建并調(diào)用一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程舉例 (1)創(chuàng)建一個(gè)名為get_sc_name的存儲(chǔ)過(guò)程,如圖32所示。 該存儲(chǔ)過(guò)程根

49、據(jù)提供的參數(shù)學(xué)號(hào)、課程號(hào),返回相應(yīng)的學(xué)生、課程名。創(chuàng)建get_sc_name存儲(chǔ)過(guò)程的語(yǔ)句如下: CREATEPROCEDUREget_sc_name snochar(6), cnochar(2), snamechar(8)OUTPUT, cnamevarchar(24)OUTPUTAS SELECTsname=SNAME,cname=CNAME FROMS,C,SC WHERES.SNO=SC.SNOANDC.CNO=SC.CNOANDSC.SNO=snoANDSC.CNO=cno CREATEPRO匚EDUFlEOWNERPRO匚EDURENAMEAS 1 J 45,1/1 取消 幫助 常

50、規(guī) 權(quán)限日I (新淫存儲(chǔ)過(guò)程 文如: 另存為檯換國(guó) 確定 存?zhèn)蜻^(guò)程展性一新建存越過(guò)程 所有者; 創(chuàng)連日期: B 檢查語(yǔ)法也 圖32存儲(chǔ)過(guò)程get_sc_name的創(chuàng)建窗口(2)調(diào)用一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程,如圖33所示。 創(chuàng)建get_sc_name存儲(chǔ)過(guò)程后,用戶可以通過(guò)使用SQL查詢分析器工具調(diào)用該存儲(chǔ)過(guò)程來(lái)調(diào)試其正確性,代碼如下: DECLAREsnamechar(8), cnamevarchar(24) EXECget_sc_nameS1,C3,snameOUTPUT,cnameOUTPUT; SELECTSNAME=sname,CNAME=cname 圖33調(diào)用存儲(chǔ)過(guò)程(get_sc_na

51、me)的代碼和運(yùn)行結(jié)果 6.26.2 觸發(fā)器觸發(fā)器 觸發(fā)器是SQLServer提供給程序員和數(shù)據(jù)庫(kù)分析員確保數(shù)據(jù)完整性的一種方法。這些方法對(duì)于那些經(jīng)常被大量的不同應(yīng)用程序訪問的數(shù)據(jù)庫(kù)相當(dāng)有用,因?yàn)樗鼈兪箶?shù)據(jù)庫(kù)增強(qiáng)了應(yīng)用規(guī)則,而應(yīng)用規(guī)則是依賴于應(yīng)用軟件的。 1)1)SQLServerSQLServer 觸發(fā)器的概念觸發(fā)器的概念 SQLServer有效地管理信息的能力來(lái)源于它在系統(tǒng)中控制數(shù)據(jù)的能力。存儲(chǔ)過(guò)程的建立,使用戶能夠在服務(wù)器上執(zhí)行邏輯,通過(guò)規(guī)則和默認(rèn)值去幫助數(shù)據(jù)庫(kù)更進(jìn)一步地管理信息。SQLServer在信息被寫入數(shù)據(jù)庫(kù)之前確認(rèn)規(guī)則和默認(rèn)值。這對(duì)于信息是一種“預(yù)過(guò)濾器”,并且能基于數(shù)據(jù)項(xiàng)控制

52、數(shù)據(jù)庫(kù)活動(dòng)的作用阻止數(shù)據(jù)項(xiàng)的活動(dòng)。 觸發(fā)器是在數(shù)據(jù)更新后執(zhí)行的“后置過(guò)濾器”,并且SQLServer已經(jīng)確認(rèn)了這些規(guī)則、默認(rèn)值等。觸發(fā)器是SQLServer執(zhí)行的特殊類型的存儲(chǔ)過(guò)程, 它發(fā)生在對(duì)于一個(gè)給定表的插入、 修改或刪除操作執(zhí)行后。由于觸發(fā)器是在操作有效執(zhí)行后才被運(yùn)行,在修改中它們代表“最后動(dòng)作”。假如觸發(fā)器導(dǎo)致的一個(gè)請(qǐng)求失敗的話,SQLServer將拒絕信息更新,并且對(duì)那些傾向于事務(wù)處理的應(yīng)用程序返回一個(gè)錯(cuò)誤消息。觸發(fā)器最普遍的應(yīng)用是實(shí)施數(shù)據(jù)庫(kù)中的商務(wù)規(guī)則,當(dāng)然在維持引用完整性方面,外鍵要比觸發(fā)器更快,但觸發(fā)器能夠維持那些外鍵所不能處理的復(fù)雜關(guān)系。 觸發(fā)器不會(huì)明顯影響服務(wù)器的性能。 它

53、們經(jīng)常被用于增強(qiáng)那些在其他的表和行上進(jìn)行很多級(jí)聯(lián)操作的應(yīng)用程序的功能。 2 2創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器 創(chuàng)建觸發(fā)器的用戶必須是該數(shù)據(jù)庫(kù)的擁有者,當(dāng)添加一個(gè)觸發(fā)器到列、行或表的時(shí)候,就會(huì)改變?cè)鯓邮贡砟軌虮辉L問,怎樣使其他對(duì)象能夠與之關(guān)聯(lián)等。當(dāng)然這種類型的操作為數(shù)據(jù)庫(kù)擁有者所保留,以便防止有人無(wú)意中修改了系統(tǒng)的布局格式。 創(chuàng)建觸發(fā)器相當(dāng)于說(shuō)明一個(gè)存儲(chǔ)過(guò)程,并且它有相似的語(yǔ)法。創(chuàng)建觸發(fā)器的語(yǔ)法格式如下: d A -ILx| 啤文件舊滿咱空訶 d 工具D宙口兇幫助 -|gx| SNAME 口網(wǎng)格區(qū)阿 営劉捺rrw| I111查詢芫成. atudbCl:OO;OD 50L-HCF.studbLW- 占姿O|

54、藥陛甩商髓 DECL占KE5natnechart8)., jcnamevarcharf24j EXECget_sc_natn.BSr.CSsnameOUTPUT.mameOUTPUT; SELECT)SFLAME-型- y陰申.Jnister申”珀nsdb E1-(JI.iTihwtnd0-QInbs H-jstudb 3Ut電mpd/b I_|ISHSlS? +沱標(biāo)屋豹 +_|日卿時(shí)閆叵 1J藝=1:誹 t_| +元故摳函毅 二I玉工匣聚 +斗卜忙所計(jì) +系薈屋豹 口沁總-住Ftl-f-!test和inJ+_|紜乓 +系爼毅光盤工 CMAME 口*7、|1|-ill 哲15仆列? CREAT

55、ETRIGGERtrigger_name ONtable WITHENCRYPTION FORDELETE,INSERT,UPDATE WITHAPPEND NOTFORREPLICATION AS Sql_statementn |FORINSERT,UPDATE WITHAPPEND NOTFORREPLICATION AS IFUPDATE(column) AND|ORUPDATE(column) n |IF(COLUMNS_UPDATED()bitwise_operator)updated_bitmask) comparison_operatorcolumn_bitmaskn Sql_s

56、tatement卜口 上述語(yǔ)句中的trigger_name為所定義的觸發(fā)器名稱; 關(guān)鍵字INSERT、UPDATE、DELETE定義了觸發(fā)器的作用域,后者決定了啟動(dòng)觸發(fā)器的操作;Sql_statement為包含在觸發(fā)器中的任何合法的SQL語(yǔ)句。 在Windows開 始 菜 單 中 執(zhí) 行 “ 程 序|MicrosoftSQLServer企 業(yè) 管 理 器 ” 命 令 , 進(jìn) 入SQLServerEnterpriseManager界面。 在SQLServerEnterpriseManager中展開SQLServer組, 再展開數(shù)據(jù)庫(kù)項(xiàng),選擇要?jiǎng)?chuàng)建觸發(fā)器的數(shù)據(jù)庫(kù)(如studb), 再選中要?jiǎng)?chuàng)建觸發(fā)

57、器的表(如S),按右鍵, 在彈出的菜單上選擇“所有任務(wù)”命令,再選“管理觸發(fā)器”命令,如郢4所示,彈出一個(gè)“觸發(fā)器屬性”窗口,如圖35所示,在該窗口中輸入觸發(fā)器代碼。 3)3)insertedinserted 和和 deleteddeleted 表表 當(dāng)觸發(fā)器被執(zhí)行時(shí),SQLServer創(chuàng)建一個(gè)或兩個(gè)臨時(shí)表(inserted或者deleted表)。當(dāng)一個(gè)記錄插入到表中時(shí),相應(yīng)的插入觸發(fā)器創(chuàng)建一個(gè)inserted表,該表鏡像該觸發(fā)器相連接的表的列結(jié)構(gòu)。例如,當(dāng)用戶在S表中插入一行時(shí),S表的觸發(fā)器使用S表的列結(jié)構(gòu)創(chuàng)建inserted表。對(duì)于插入到S表的每一行,相應(yīng)地在inserted表中也包括該行。 deleted表也鏡象觸發(fā)器相連接的表的列結(jié)構(gòu)。 當(dāng)執(zhí)行一條DELETE語(yǔ)句時(shí)從表中刪除的每

溫馨提示

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

評(píng)論

0/150

提交評(píng)論