程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 什麼是事務:維持數據一致性和恢復

什麼是事務:維持數據一致性和恢復

編輯:SyBase綜合文章
1.事務的定義
事務提供了一種將T-SQL語句分組的方法,從而使它們能夠被當成一個單元來處理:組中所有語句或都執行,或都不執行。
事務是確保一個或多個SQL語句的集合不被當成單一工作單元處理的機制,SQL Server自動將所有數據修改命令,包括單步改變請求,作為事務處理,缺省時,每個insert、update、delete語句被當成一個事務處理。
2.事務的作用
事務使SQL Server能保證:
·一致性——同時發生的查詢或改變請求彼此不沖突,用戶不能對正處於改變過程的數據進行查看或操作。
·恢復——在系統失效時,數據庫的恢復是完全的和自動的。
3.使用事務
a. 開始和確認事務
begin transaction和commit transaction可將任意數目的SQL語句封裝起來,這兩名的簡單語法為:
begin transaction
commit transaction
b. 回退事務
在commit transaction命令提交前任何時候可取消或回退事務,該命令的簡單語法為:
rollback transaction
4.檢查事務狀態
全局變量@@transtate記錄了事務當前的狀態。在執行一個語句後SQL Server通過記錄所有事務變化來確定返回何種狀態。
@@transtate可包含下列值:
值意 義
0事務進行中:一個顯式或隱式事務有效;上一語句執行成功
1事務完成:事務完成並提交其變化
2語句異常中止:上一語句異常終止;對事務無影響
3事務異常中止:事務異常中止並回退所有變化
舉例:在事務中,可在一個語句(如insert)後使用@@transtate確定該語句成功或失敗對事務的影響。commit transaction
Begin transaction
Insert into publishers(pub_id)values(‘9999’)
(1 row affected)
select @@transtate
…………………
0
commit transaction
select @@transtate
…………………
0
(1 row affected)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved