SQLServer 事務的應用

2021-08-07 17:39:28 字數 2189 閱讀 4585

----事務基本框架

--declare @errorsum int --定義變數,用於累計事務執行過程中的錯誤

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

--begin transaction

-- begin

-- update cardaccount set currentmoney=currentmoney-1000

-- where studentid=100001

-- set @errorsum=@errorsum+@@error

-- update cardaccount set currentmoney=currentmoney+1000

-- where studentid = 100002

-- set @errorsum = @errorsum+@@error

-- if(@errorsum>0)

-- rollback transaction

-- else

-- commit transaction --提交回滾事務

-- end

--go

--select students.studentid,studentname,currentmoney from students

--inner join cardaccount on students.studentid=cardaccount.studentid

--update cardaccount set currentmoney=currentmoney+900

-- where studentid=100001

--select * from cardaccount

--事務的應用

use studentmanager

goif exists(select * from sysobjects where name='usp_transferaccounts')

drop

procedure usp_transferaccounts

gocreate

procedure usp_transferaccounts

@inputaccount int,

@outputaccount int,

@transfermoney int

asdeclare @errorsum int

set @errorsum=0

begin

transaction

begin

update cardaccount set currentmoney= currentmoney - @transfermoney

where studentid=@outputaccount

set @errorsum=@errorsum+@@error

update cardaccount set currentmoney=currentmoney + @transfermoney

where studentid =@inputaccount

set @errorsum=@errorsum+@@error

if(@errorsum>0)

rollback

transaction

else

commit

transaction

endgo

exec usp_transferaccounts 100002,100001,100

select students.studentid,studentname,currentmoney from students

inner

join cardaccount on students.studentid=cardaccount.studentid

select * from cardaccount

SQLServer事務在C 當中的應用

事務指的是一系列sql操作的邏輯工作單元,要麼完全地執行,要麼完全地不執行。乙個邏輯工作單元必須有4個屬性,原子性 atomic 一致性 consistent 隔離型 isolated 永續性 durable 簡稱為acid。在c 實現中實現資料庫的事務其實並不難,但是我們要知道為什麼使用資料庫的事...

sqlserver事務的用法

事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是乙個不可分割的工作單位。通過事務,sql server 能將邏輯相關的一組操作繫結在一起,以便伺服器保持資料的完整性。現在通過乙個典型的銀行轉賬的例子來說明一下 首先建立乙個表 create ...

sql server中的 事務

begin tran update data update tb 顧客表 set 郵編 1300511 where 顧客編號 kh003 commit tran update data 在儲存過程中使用事務 判斷pro pro16儲存過程是否存在,如果存在將它刪除 if exists select ...