• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      SQL數(shù)據(jù)庫中事務(wù)的實現(xiàn)方法

      2013-01-03 08:30:20蔡義忠熊發(fā)涯
      關(guān)鍵詞:黃岡事務(wù)命令

      蔡義忠,熊發(fā)涯

      (黃岡職業(yè)技術(shù)學(xué)院,湖北黃岡 438002)

      筆者在開發(fā)一個“說課比賽網(wǎng)絡(luò)評分系統(tǒng)”的時候,遇到一個需要對多個數(shù)據(jù)庫表同時操作的情況,如果用普通的做法,順序?qū)Ω鱾€數(shù)據(jù)庫表進(jìn)行操作,就可能會在極端情況下,出現(xiàn)操作一部分的數(shù)據(jù)庫表的情況下操作被中斷。這樣導(dǎo)致數(shù)據(jù)庫中的信息出現(xiàn)不一致,甚至出現(xiàn)“臟數(shù)據(jù)”。從而影響軟件系統(tǒng)的穩(wěn)定運(yùn)行。如果使用事務(wù)來處理對多個數(shù)據(jù)庫表的操作就可以避免這樣極端情況下的錯誤產(chǎn)生。

      1 事務(wù)的定義

      事務(wù)是對數(shù)據(jù)庫執(zhí)行的一個操作單位。它是以邏輯順序完成的工作單元或工作序列,無論是用戶手工操作,還是由程序進(jìn)行的自動操作。

      一個事務(wù)可以是一個或多個DML語句。在管理事務(wù)時,任何指定的事務(wù)都必須作為一個整體來完成,否則其中任何一條語句都不會完成[1]。下面是事務(wù)的基本特征:

      1)所有的事務(wù)都有開始和結(jié)束。例如,在SQL Server中事務(wù)用BEGIN TRANSACTION開始。

      2)事務(wù)可以被保存或撤消。例如,在SQL Server中撤消事務(wù)的方法用ROLLBACK TRANSACTION。提交事務(wù)用COMMIT TRANSACTION。通常撤消或保存事務(wù)是放在一個條件判斷語句中來執(zhí)行的。

      3)如果事務(wù)在中途失敗,事務(wù)中的任何部分都不會被記錄到數(shù)據(jù)庫中。這樣可以很好的保證數(shù)據(jù)的完整性。

      注意:事務(wù)控制命令只與DML命令I(lǐng)NSERT、UPDATE和DELETE配合使用,比如我們不會創(chuàng)建表之后使用COMMIT語句,因為當(dāng)表被創(chuàng)建之后,它會自動被提交給數(shù)據(jù)庫。類似地,不能使用ROLLBACK語句來恢復(fù)被撤消的表。

      當(dāng)事務(wù)完成之后,事務(wù)信息被保存在數(shù)據(jù)庫里的指定區(qū)域或臨時回退區(qū)域。所有的修改都被保存到這個臨時回退區(qū)域。直到事務(wù)控制命令出現(xiàn)。當(dāng)事務(wù)控制命令出現(xiàn)時,所做的修改要么被保存到數(shù)據(jù)庫中,要么被放棄,然后臨時回退區(qū)域被清空。

      2 事務(wù)應(yīng)用實例

      下面,筆者以具體的應(yīng)用實例來進(jìn)一步解釋事務(wù)的使用方法。在筆者最近開發(fā)的“說課比賽網(wǎng)絡(luò)評分系統(tǒng)”中有這么一個業(yè)務(wù)需求。要求一個院校最多只能報4門課程參加湖北省高職高專院校說課比賽。那么,在數(shù)據(jù)庫系統(tǒng)中,增加一個院校表信息的同時,就得在用戶表和課程表中同時增加四條記錄信息。并且一個新增的參賽教師信息對應(yīng)一個新增的參賽課程信息。這個功能對應(yīng)的界面如圖1所示。

      圖1 通過事務(wù)增加院校的界面

      這個功能需求,用存儲過程及事務(wù)來實現(xiàn),具體代碼如下:

      注意:SQL Server的注釋是用“--”開頭,讀者可以通過看注釋來理解事務(wù)的實現(xiàn)方法。

      3 結(jié)束語

      事務(wù)處理在數(shù)據(jù)庫應(yīng)用中極為重要,是保證數(shù)據(jù)庫應(yīng)用系統(tǒng)安全穩(wěn)定運(yùn)行的重要手段。本文中的小案例中的判斷事務(wù)執(zhí)行的成功還是失敗是通過記錄每個操作語句執(zhí)行后返回的系統(tǒng)錯誤號@@ERROR來判斷,只要有一次出現(xiàn)@@ERROR返回值不是0,則最終的@ERROR變量就不能為0,也就可以判斷事務(wù)是否失敗。注意區(qū)別,@ERROR是定義的變量,@@ERROR是系統(tǒng)返回的錯誤編號,執(zhí)行正常時@@ERROR返回為0,執(zhí)行不正常@@ERROR返回為非0。

      [1]什么是SQL中的事務(wù)以及控制事務(wù)概述[EB/OL].http://www.gootry.com/java-base/article/100612222328/153,2010-06-12.

      [2]高文.面向素質(zhì)教育、基于信息技術(shù)的課程與教學(xué)改革[J]. 上海教育,2001,(4).

      [3]賴一飛,魏敏杰.面向新世紀(jì)的統(tǒng)計學(xué)教學(xué)改革[J].科技進(jìn)步與對策,2001,(6).

      猜你喜歡
      黃岡事務(wù)命令
      書的厚與薄
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計與實現(xiàn)
      只聽主人的命令
      黃岡師范學(xué)院美術(shù)作品選登
      黃岡師范學(xué)院美術(shù)學(xué)院寫生作品選登
      黃岡師范學(xué)院書法作品選登
      河湖事務(wù)
      移防命令下達(dá)后
      這是人民的命令
      沭阳县| 鄂托克前旗| 博兴县| 自治县| 正镶白旗| 集贤县| 光泽县| 康乐县| 松阳县| 巴彦淖尔市| 乌兰浩特市| 嘉禾县| 尚志市| 金沙县| 香格里拉县| 鹤庆县| 浦城县| 勃利县| 鹤山市| 蚌埠市| 闵行区| 临西县| 龙泉市| 鹿邑县| 庆阳市| 康马县| 收藏| 南充市| 喀喇沁旗| 合水县| 东台市| 丰宁| 嘉鱼县| 都匀市| 兖州市| 赣榆县| 砀山县| 河津市| 灵山县| 夏邑县| 阜阳市|