create table account
(
name varchar(20) primary key,
balance money not null
check (balance>=1)
)
create table logger ---相当于是日志文件
(
nameFrom varchar(20) not null,
nameTo varchar(20) not null,
num money not null,
time datetime not null
)
insert into account values('aaa',1000)
insert into account values('bbb',1)
declare @totalErr int
set @totalErr=0
begin transaction --开始事务
update account set balance=balance-1000 where name='aaa'
set @totalErr=@totalErr+@@ERROR
update account set balance=balance+1000 where name='bbb'
set @totalErr=@totalErr+@@ERROR
insert into logger values('aaa','bbb',1000,GETDATE()) ----为什么执行后,最后查询此表没有数据显示?
set @totalErr=@totalErr+@@ERROR
if @totalErr>0
begin
rollback transaction--回滚事务
print '回滚事务成功'
end
else
begin
commit transaction--提交事务
end
高手看下,为什么最后查询此表logger 中的数据没哟数据显示?
谢谢回复!
SQL数据库事务
分享到:
------解决方案-------------------- 执行你的代码有报错:
The UPDATE statement conflicted with the CHECK constraint "CK__account__balance__3C69FB99".