




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1回顧帶有輸出參數的存儲過程存儲過程調用存儲過程2思考:寫一個存儲過程執行銀行轉賬的功能,假設數據庫中有賬戶表Account(UserName,UserAccount),現要將用戶A轉賬到用戶B一定的金額,完成存儲過程。createprocprcTransfer@OriginUservarchar(20),@DesUservarchar(20),@MoneymoneyAs…
if(selectUserAccountfromAccount whereUserName=@OriginUser)>=@Money
begin updateAccountsetUserAccount=UserAccount-@Money whereUserName=@OriginUser updateAccountSetUserAccount=UserAccount+@Money whereUserName=@DesUser
end...假設程序執行到第一個更新語句時斷電了?3第七章
事務的概念及創建4目標事務的概念創建包含事務的存儲過程保存部分事務58.1事務的概念及應用
SQLServer提供了一種叫做事務的機制,它可以保證指定的對數據庫的一系列操作作為一個整體被執行,在最終提交操作之間,用戶可以隨時取消前面的操作,將數據庫還原到沒有執行操作前的狀態,或者操作全部完成,將所有的操作提交到數據庫。6事務的屬性
原子性:事務必須是原子工作單元。它對數據庫所進行的操作,要么全都執行,要么全都不執行。
一致性:事務在完成時,必須使所有的數據都保持一致狀態。在相關數據庫中,所有規則都必須應用于事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數據結構(B數索引)都必須是正確的。
隔離性:由并發事務所作的修改必須與任何其他并發事務所作的修改隔離。事務查看數據時數據所處的狀態,要么是另一并發事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不會查看中間狀態的數據。
持久性:事務完成之后,它對于系統的影響是永久性的。該修改即使出現系統故障也將一直保持。78.2事務的操作啟動事務:
BEGINTRANSACTION[事務名]回滾事務:
ROLLBACKTRANSACTION[事務名]提交事務:
COMMITTRANSACTION[事務名]注意,不能在發出COMMITTRANSACTION語句之后回滾事務,因為數據修改已經成為數據庫的永久部分。8示例:定義一個事務,向“學生”表中插入兩條記錄。其中,第1條INSERT語句是正確的,而第2條INSERT語句是錯誤的。執行此事務語句后,查看“學生”表中的數據,確認第1條語句沒有被執行。
解決方案:createprocprcInsertStudentasbegintrybegintransactionINSERTINTOStudentVALUES('A00010',‘Andy',21,'男','Nanjing',90,1)INSERTINTOStudentVALUES(‘A00011’,‘mary’,21,'女','Nanjing',150,1)committransactionendtrybegincatch print'出錯了'endcatch思考:編譯器執行到第二個insert語句時,會如何處理?Rollbacktransaction98.3包含事務的存儲過程結構CREATEPROC存儲過程名@參數名參數類型[,…n]ASBEGINTRY IFEXISTS() BEGIN BEGINTRANSACTION //執行事務語句 COMMITTRANSACTION END ELSE //信息不存在ENDTRYBEGINCATCH ROLLBACKTRANSACTIONENDCATCH10習題創建事務,假設給定學號的學生將從原系轉入給定的系,則相應的系總人數將發生變化,如果兩系相差人數小于10,則允許該生轉系,否則回滾事務。假設系表Department(DepID,DepName,Total)解決方案:①求出給定學號對應的原系號②求出給定轉入的系名對應的系號③更新學生表中該學號對應的新系號④將系表中原系號對應的總人數-1⑤將系表中轉入的系號對應的總人數+1⑥獲取原系號對應的人數⑦獲取新系號對應的人數⑧如果人數相差<=10,則提交事務;否則回滾事務。11程序createprocprcTransfer@StuIDchar(10),@DepNamevarchar(40)As…IFEXISTS(SELECT*FROMStudentWHEREStuID=@StuID)IFEXISTS(SELECT*FROMDepartmentWHEREDepName=@DepName)begin
begintran
declare@OrginalDepint,@NewDepint
select@OrginalDep=DepIDfromstudentwhereStuID=@StuID
select@NewDep=DepIDfromdepartmentwhereDepName=@DepName
updatestudentsetDepID=@NewDepwhereStuID=@StuID
updateDepartmentsetTotal=Total+1whereDepName=@DepName
updateDepartmentsetTotal=Total-1whereDepID=@OrginalDep
declare@OrginalTotalint,
@NewTotalint
select@OrginalTotal=TotalfromdepartmentwhereDepID=@OrginalDep
select@NewTotal=TotalfromdepartmentwhereDepID=@NewDep
if(@OrginalTotal-@NewTotal>=-10and@OrginalTotal-@NewTotal<=10)
committran
else
rollbacktran
end…12回滾事務的一部分SC表和Department表需要用下面的事務來更新:操作1:UPDATESCSETScore=Score+1WHEREStuID=‘A00001’andCourseID=1UPDATESCSETScore=Score-1WHEREStuID=‘A00001’andCourseID=
2操作2:INSERTINTOSTUDENTVALUES('A00014','mary',21,'男','Nanjing',90,2)UPDATEDepartmentSETTotal=Total+1WHEREDepID=213思考所有更新應一起來做。對于Department,如果Total值大于100,由第二個事務所產生的改變必須被回滾,而由第一個事務產生的改變是允許的。148.4設置事務保存點在事務內設置保存點。保存點把事務分成幾個邏輯單元,如果事務的一部分是有條件地被取消,這樣事務可以返回到保存點。語法:SAVETRAN[SACTION]{savepoint_name}15解決方案BEGINTRANSACTION
UPDATESCSETScore=Score+1WHEREStuID=‘A00001’andCourseID=1UPDATESCSETScore=Score-1WHEREStuID=‘A00001’andCourseID=
2SAVETRANSACTIONtrnTransaction1INSERTINTOSTUDENTVALUES('A00014','mary',21,'男','Nanjing',90,2)UPDATEDepartmentSETTotal=Total
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備維護缺陷管理制度
- 設施設備校準管理制度
- 設計團隊文件管理制度
- 設計院大客戶管理制度
- 診所人員體診管理制度
- 診所消毒服務管理制度
- 診療項目審批管理制度
- 財務管理授權管理制度
- 貨品庫存資金管理制度
- 貨物配送公司管理制度
- 2025年熔化焊接與熱切割作業中考試練習題(100題)附答案
- 2025年下半年廣州市荔灣區招考社區居委會專職工作人員招考易考易錯模擬試題(共500題)試卷后附參考答案
- 國家職業技術技能標準 6-16-02-08 天然氣開采工 人社廳發202226號
- 緊缺人才培育與集成電路產業發展趨勢
- 95式自動步槍對不動目標的射擊動作要領上課講義
- 建設領域信息技術應用基本術語標準
- 講好法院故事:消息寫作與新聞攝影實戰指南
- 2025-2030中國納豆激酶行業現狀調查與發展前景趨勢預測研究報告
- 臨床預防有法護理有道“4321”結構化干預方案在腦卒中患者失禁性皮炎皮膚管理臨床應用
- 慢性病管理與公共衛生試題及答案
- 2025年04月中國熱帶農業科學院橡膠研究所第一批公開招聘16人(第1號)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
評論
0/150
提交評論