自己的事情自己干!

发布新日志

  • 什么是事務

    2008-12-04 17:03:20

    事務(transaction) 是作為單個邏輯工作單元執行的一系列操作,這些操作作為一個整體一起向系統提交,要麼都執行,要麼都不執行。事務是一個不可分割的工作邏輯單元。

    事務必須具備以下四個屬性:

    原子性:事務是一個完整性的操作,各個操作都是不可分割的(原子),要麼都操作,要麼都不操作﹔

    一致性:當事務完成之後,數據必須保持一致折狀態

    隔離性:對數據進行修改的並發性事務,每個都是獨立的,互不影響。

    永久性:當事務完成之後,對數據的修改將被永久保持,事務日誌能夠保持事務的永久性

     

    使用T_SQL語句管理事務:

    開始事務:begin transaction

    提交事務:commit transaction

    回滾(撤消)事務;rollback transaction

    事務分類

    顯示事務:用begin transaction明確指定事務的開始,這是最常用的事務類型

    隱性事務:通過設置set implicit_transactions on 語句,將隱性事務模式設置為打開,下一個語句自動啟動一個新事務。當該事務完成時,再下一個T_SQL語句又將啟動一個新事務

    自動提交事務:這是SQL_SERVER默認模式,它將每條單獨的T-SQL語句視為一個事務,如果執行,則自動提交,如果錯誤,則自動回滾

    如何創建事務

    begin transaction 

    declare @errorSum int  /*定義變量,用於累計事務執行過程中的錯誤*/

    set @errorSum=0  /*初始化為0*/

    update bank set currentMoney=currentMoney-1000  /*轉帳:張三的帳戶少了1000無,李四的帳戶多了1000元*/

    where customeName='張三'

    set @errorSum=@errorSum+@@error

    update bank set current Money=currentMoney+1000

    where cusomerName='李四'

    set @errorSum=@errorSum+@@error  /*累計是否有誤*/

    if @errorSum<>0  如果有錯誤

      begin

        print'交易失敗,回滾事務'

       rollback transaction

    end

      else

      begin

      print'交易成功,提交事務,寫入硬盤,永久的保存'

      commit transaction

    end

      go

      pring '查看轉帳事務後的余額'

      select * from bank

      go

  • 2008/05/13

    2008-05-13 17:53:26

      正式開始測試工作已經快2個月了,和想象中的測試有很大的區別。由于我進的是小公司,測試部門只有2 個人,所以測試流程很不規范。經常是做好的一個系統,沒有任何文檔,也沒有代碼,只是把測試的系統連接好就丟給測試人員操作一遍,如果有問題則修改,沒問題就上線。如果涉及到設計的問題,測試人員也沒有說話的權利,開發人員只說,這是設計的問題,我們也不能修改。

      郁悶中......

数据统计

  • 访问量: 2134
  • 日志数: 5
  • 图片数: 1
  • 建立时间: 2008-04-15
  • 更新时间: 2008-12-04

RSS订阅

Open Toolbar