SQL Server事務設置及類型與Oracle的區(qū)別
事務是大型數(shù)據(jù)庫產(chǎn)品的一個關(guān)鍵問題,那么SQL Server事務究竟和Oracle中有何區(qū)別呢?下文對兩個數(shù)據(jù)庫中的事務設置的區(qū)別作了詳細的敘述,供您參考。
在SQL Server中有三種事務類型,分別是:隱式事務、顯式事務、自動提交事務,缺省為自動提交。
自動提交,是指對于用戶發(fā)出的每條SQL語句,SQL Server都會自動開始一個SQL Server事務,并且在執(zhí)行后自動進行提交操作來完成這個事務,也可以說在這種事務模式下,一個SQL語句就是一個事務。
顯式事務,是指在自動提交模式下以Begin Transaction開始一個SQL Server事務,以Commit或Rollback結(jié)束一個SQL Server事務,以Commit結(jié)束事務是把SQL Server事務中的修改***化,即使這時發(fā)生斷電這樣的故障。例如下面
是SQL Server中的一個顯式事務的例子。
- Begin Tran
- Update emp Set ename=’Smith’ Where empno=7369
- Insert Into dept Values(60,’HR’,’GZh’)
- Commit
隱式事務,是指在當前會話中用Set Implicit_Transactions On命令設置的事務類型,這時任何DML語句(Delete、Update、Insert)都會開始一個事務,而事務的結(jié)束也是用Commit或Rollback。
在Oracle中沒有SQL Server的這些事務類型,缺省情況下任何一個DML語句都會開始一個事務,直到用戶發(fā)出Commit或Rollback操作,這個事務才會結(jié)束,這與SQL Server的隱式事務模式相似。
【編輯推薦】