




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第10講 問題|問題 在銀行等重要交易中,要使一組sql語句同時執(zhí)行或撤消,如何做? 要對查詢結(jié)果進(jìn)行一行行的操作,如何做到? 事務(wù)概述|事務(wù)是作為單個邏輯工作單元執(zhí)行的一系列操作。z思考:事務(wù)和批處理的區(qū)別?|事務(wù)的屬性(acid)z原子性:原子工作單元z一致性:保證數(shù)據(jù)的一致性z隔離性:并發(fā)事務(wù)之間所做的修改要隔離并發(fā)操作:幾個用戶程序同時讀寫一個數(shù)據(jù)的情況z持久性:對系統(tǒng)的影響要持久簡單事務(wù)編程|格式:1.begin transaction2.commit transaction3.rollback transaction|【問題】簡單的事務(wù)提交和回滾z說明:如果沒有明確給出begin
2、transaction語句,則sql server是將每個sql語句都當(dāng)成一個事務(wù)進(jìn)行執(zhí)行事務(wù)的嵌套|嵌套事務(wù)只有在提交了最外層的事務(wù)后,數(shù)據(jù)才執(zhí)行永久修改|嵌套事務(wù)時,rollback語句只能將所有內(nèi)層事務(wù)回滾到最外層的begin transaction語句封鎖|利用封鎖技術(shù)可以有效地保證數(shù)據(jù)的一致性|封鎖粒度:可以鎖定在行、列、表、數(shù)據(jù)庫等不同的單元上|sql server具有自動和強(qiáng)制封鎖的功能鎖模式|鎖模式:1.共享鎖(share lock)2.排他鎖(exclusive lock)3.更新鎖(update lock)|各種鎖模式的兼容性: 共享鎖共享鎖更新鎖更新鎖排他鎖排他鎖共享鎖共
3、享鎖yesyesno更新鎖更新鎖yesnono排他鎖排他鎖nonono死鎖|當(dāng)兩個事務(wù)trans1和trans2在下列的狀態(tài)時,將產(chǎn)生死鎖:1.trans1:存取數(shù)據(jù)項(xiàng)x和y2.trans2:存取數(shù)據(jù)項(xiàng)y和xz【說明】如果事務(wù)trans1封鎖了數(shù)據(jù)項(xiàng)x,事務(wù)trans2封鎖了數(shù)據(jù)項(xiàng)y,則trans1等待trans2釋放y上的鎖,trans2等待trans1釋放x上的鎖。因此,trans1和trans2都無限地等待對方打開鎖住的數(shù)據(jù)項(xiàng),則產(chǎn)生死鎖。死鎖(續(xù))|【死鎖示例】|說明: sql server能自動發(fā)現(xiàn)并解除死鎖|避免死鎖的措施:p.237 游標(biāo)引例以前:使用select語句對表格進(jìn)行查
4、詢,返回的結(jié)果集包括所有滿足條件的行。思考:如果要求每次只顯示表格(例如上面的course表)中的一行,該如何處理?這在將t-sql嵌入到其他高級語言(如c、vc、delphi等)的編程中經(jīng)常用到。 游標(biāo)概述|可以將游標(biāo)看作一種特殊的指針,它可以指向與它相關(guān)聯(lián)的結(jié)果集中的任意一行,以便對當(dāng)前位置的行進(jìn)行處理。|游標(biāo)提供了對一個結(jié)果集進(jìn)行逐行處理的能力:1.在結(jié)果集中定位特定行2.從結(jié)果集的當(dāng)前位置檢索行3.支持對結(jié)果集中當(dāng)前位置的行進(jìn)行數(shù)據(jù)處理(修改/刪除)使用游標(biāo)的步驟|聲明游標(biāo)|打開游標(biāo)|處理數(shù)據(jù)(讀取/修改/刪除)可以和其他t-sql語句配合靈活使用|關(guān)閉游標(biāo)(與打開游標(biāo)配對)|刪除游標(biāo)
5、(與聲明游標(biāo)配對,此時釋放分配給游標(biāo)的所有資源)【問題】游標(biāo)基本使用的例子相關(guān)語法格式|聲明游標(biāo)declare cursor_name cursordeclare cursor_name cursorforword_only|scrollforword_only|scrollfor select_statementsfor select_statements|打開游標(biāo)open cursor_nameopen cursor_name|使用游標(biāo)fetch next|prior|first|lastfetch next|prior|first|lastfrom cursor into variabl
6、e_namefrom cursor into variable_name|關(guān)閉游標(biāo)close cursor_nameclose cursor_name|刪除游標(biāo)deallocation cursor_namedeallocation cursor_name練習(xí)11.聲明一個名為crsstudent的游標(biāo),使其與“00電子商務(wù)班”的所有學(xué)生信息(學(xué)號、姓名)相關(guān)聯(lián),并逐行顯示前三條學(xué)生信息如果遍歷整個結(jié)果集?|使用fetch_status:z該全局變量/配置函數(shù)返回被最后fetch語句執(zhí)行的游標(biāo)的狀態(tài),返回類型為int:1.0:fetch語句成功2.1:fetch語句失敗或此行不在結(jié)果集中3.2:被提取的行不存在練習(xí)2|使用游標(biāo)遍歷course表,輸出報(bào)名人數(shù)最多的課程的信息(課程編碼、課程名稱、報(bào)名人數(shù))練習(xí)3|建立一個存
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)后修復(fù)中心合同范本
- 勞務(wù)代管合同范本
- 加盟托管經(jīng)營合同范本
- 出租吊車服務(wù)合同范本
- 單位代建房合同范例
- 2013版建設(shè)合同范本
- 單位監(jiān)控安裝合同范本
- 個人雇傭出海作業(yè)合同范本
- 加工貨款合同貨款合同范本
- 個人山林承包合同范本
- 2024版中山二手住宅交易合同指南2篇
- KULI軟件操作規(guī)范
- 五年級下冊數(shù)學(xué)課內(nèi)每日計(jì)算小紙條
- 《傳染病病人的護(hù)理》課件
- 2024年度中國寵物行業(yè)研究報(bào)告
- 工業(yè)自動化控制系統(tǒng)升級與維護(hù)服務(wù)合同
- 定崗定編定員實(shí)施方案(5篇)
- 藥品經(jīng)營質(zhì)量管理規(guī)范
- 爆破工程師培訓(xùn)
- 2024年云南省公務(wù)員考試《行測》真題及答案解析
- 教科版初中物理八年級下冊知識梳理
評論
0/150
提交評論