使用事务实现--转账问题:从0001账户转1000块到0002账户。
egin tran--打开事务
begin try
declare @errorSum int =0
update Bank set balance=balance-900 where Cid='0001'
set @errorSum=@errorSum+@@error
update Bank set balance=balance+900 where Cid='0002'
set @errorSum=@errorSum+@@error
commit
print '提交!!'
end try
begin catch
rollback
print '回滚!'
end catch
8打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
use TestSchool
set implicit_Transactions on
delete from Bank
rollback
select * from Bank
9关闭“隐式事务”。
set implicit_Transactions off
--如果隐式事务打开,然后删除某个表,在事务没有结束前,其它查询不能访问该表。
临时表,
新建 临时表(#MyStudents,包含2个字段分别为sName、sAge),并将Mystudents中的相应数据copy其中。
create table #MyStudents
(sName nvarchar(20),sAge int)
insert into #MyStudents select tSName,tSAge from TblStudent
select * from #MyStudents