tran 事务
if exists(select * from sys.objects where name='bank')
drop table bank
CREATE TABLE bank
(
customerName nvarchar(10), --顾客姓名
[Money] MONEY --当前余额
)
ALTER TABLE bank --创建表
ADD CONSTRAINT CK_currentMoney
CHECK([Money]>=1)
INSERT INTO bank(customerName,[Money])
VALUES('张三',1000)
INSERT INTO bank(customerName,[Money])
VALUES('李四',1)
declare @transMoney money
declare @error int
set @error=0
set @transMoney=100
begin transaction
update bank set money=money-@transMoney where customerName='张三'
set @error = @@error+@error
update bank set money=money+@transMoney where customerName='李四'
set @error = @@error+@error
--判断上面的sql语句是否都执行成功,如果都执行成功,则提交事务,否则加滚事务
if (@error=0)
begin
commit transaction --上面的sql语句没一个出错,把执行的sql语句提交到磁盘
print '转钱成功!'
end
else
begin
rollback transaction --上面的sql语句有一个出错,回滚事务
print '转帐失败!'
end