国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

SQL讀書筆記-事務(wù)處理

2024-07-21 02:12:09
字體:
供稿:網(wǎng)友

理解sql事故處理
1 在sql事務(wù)處理期間,由語句所完成的工作,在永久寫入數(shù)據(jù)庫之前都可以取消(使用rollback語句)。commit告訴dbms使數(shù)據(jù)庫的變化成為永久的。

下面就來理解一下事務(wù)處理過程
如:begin transaction
語句1
語句2
語句3
語句4
在應(yīng)用程序正常結(jié)束之前,4條修改語句并未提交,即未成為永久的,由此,異常結(jié)束將使得dbms取消由應(yīng)用程序體中的所有4條sql語句所做的修改。

如果想讓前兩條修改后永久保存到數(shù)據(jù)庫中,而不管后兩條是否成功。可以執(zhí)行如下事務(wù)。
如: begin transaction
語句1
語句2
commit transaction
begin transaction
語句3
語句4

2 在交互式會(huì)話期間,dbms默認(rèn)為自動(dòng)提交模式,這就意味著dbms自動(dòng)地提交(使之成為永久的)每一條成功執(zhí)行的sql語句的操作。因而,如果執(zhí)行以下語句
delete from employees
將不能使用 rollback transaction 使刪除的數(shù)據(jù)在恢復(fù)。

如何禁用自動(dòng)提交模式呢?ms_sql server允許通過執(zhí)行以下語句禁用自動(dòng)提交模式
begin transaction

3 對帶用大量語句時(shí),可以使用存儲(chǔ)點(diǎn)的方法,允許應(yīng)用程序取消所做工作并恢復(fù)到事務(wù)處理中的特定點(diǎn),由此,應(yīng)用程序可對存儲(chǔ)點(diǎn)使用rollback語句,重新做出事務(wù)處理中的部份語句所做的工作,而不必從頭開始
如:begin transaction

create table trans_table
(row_number smallint,descrp varchar(35))

insert into trans_table values(1,'insert 1')
insert into trans_table values(2,'insert 2')
//存儲(chǔ)點(diǎn)save1
save transaction save1

delete from trans_table where row_number = 2
insert into trans_table values(3,'insert 3')
insert into trans_table values(4,'insert 4')
//存儲(chǔ)點(diǎn)save2
save transaction save2

delete from trans_table where row_number = 1
delete from trans_table where row_number = 3

rollback transaction save2

update trans_table
set descrp = 'row 1 after 2'
delete trans_table where row_number = 4

commit transaction

在執(zhí)行上面語句后
執(zhí)行 select * from trans_table
的結(jié)果如下:
row_number descrp
1 'row 1 after 2'
3 'row 1 after 2'



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 莱阳市| 手游| 沙河市| 阳山县| 绥阳县| 蒲江县| 阿尔山市| 彭山县| 晴隆县| 东乌珠穆沁旗| 临高县| 砚山县| 淳化县| 罗平县| 诸暨市| 铁力市| 阜新| 淄博市| 灵丘县| 晴隆县| 红桥区| 肃宁县| 邵阳市| 富民县| 清河县| 光泽县| 丰台区| 志丹县| 云安县| 贺州市| 大竹县| 郓城县| 淮北市| 垦利县| 绿春县| 吕梁市| 吕梁市| 塘沽区| 清徐县| 宁强县| 惠来县|