日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

簡單例子理解數據庫事務

系統 2143 0


簡單例子理解數據庫事務

?

    /*-- 創建表 --*/

--創建農行賬戶表bank

if exists(select * from sysobjects where name='bank')

	drop table bank

go

create table bank

(

	customerName char(10),		--顧客姓名

	currentMoney money			--當前余額

)

/*-- 添加約束:根據銀行規定,賬戶余額不能少于1元,否則視為銷戶 --*/

alter table bank

add constraint CK_currentMoney check(currentMoney>=1)

/*-- 插入測試數據:張三開戶,開戶金額為800,李四開戶,開戶金額1 --*/

insert into bank(customerName,currentMoney) values('張三',1000)

insert into bank(customerName,currentMoney) values('李四',1)

--查看結果

select * from bank

go



/*-- 轉賬測試:張三希望通過轉賬,直接匯錢給李四1000元 --*/

set nocount on --不顯示受影響的行數信息

print '查看轉賬事務前的余額'

select * from bank

go

/*-- 開始事務 --*/

begin transaction

/*-- 定義變量,用于累計事務執行的過程中的錯誤 --*/

declare @errorSum int

set @errorSum=0		--初始化為0,即無錯誤

/*-- 轉賬 --*/

update bank set currentMoney=currentMoney-1000 where customerName='張三'

set @errorSum=@errorSum+@@error		--累計是否有錯誤

update bank set currentMoney=currentMoney+1000 where customerName='李四'

set @errorSum=@errorSum+@@error		--累計是否有錯誤



print '查看轉賬事務過程中的余額'

select * from bank



/*-- 根據是否有錯誤,確定事務是提交還是撤銷 --*/

if @errorSum<>0		--如果有錯誤

	begin

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

		rollback transaction

	end

else

	begin

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

		commit transaction

	end



print '查看轉賬事務后的余額'

select * from bank

go
  

簡單例子理解數據庫事務

?

?

簡單例子理解數據庫事務


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 竹山县| 安远县| 深水埗区| 芜湖县| 正安县| 巴马| 集贤县| 田东县| 晋宁县| 墨玉县| 涪陵区| 玉田县| 西安市| 大英县| 林口县| 海淀区| 清水县| 琼海市| 宿州市| 沙坪坝区| 九龙城区| 竹山县| 岫岩| 裕民县| 肇源县| 瑞金市| 海阳市| 潜山县| 樟树市| 德钦县| 韩城市| 玉门市| 临桂县| 三原县| 四会市| 白玉县| 慈溪市| 剑川县| 瑞丽市| 普兰店市| 安宁市|