----事務基本框架
--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 ...