--开启事务
begin transaction
--执行sql 写一般的操作脚本
--判断结论 可以用变量记录一个标记,用if-else结构处理
--确定提交还是回滚 提交commit 回滚 rollback
事务的始特性
-->原子性:全部的操作作为一个整体,要不成功,要不失败。
-->持久性:一旦事务提交不可恢复,在不备份的情况下。
-->隔离性:我在完成事务的时候,你不允许干涉我的操作,你的操作和我的操作如果有冲突,那我先做,你等着,等我做完了你再做。
-->一致性:我在执行操作的时候,必须用我的约束一直相符合,如果不符合就跑错。
--------数据库中默认每一句话都是一个事务--隐式事务
--------用户自定义的开启事务,就是显示事务
begin transaction
begin try
update bank set bknn+bknn+100 where id='001'
update bank set bknn+bknn+100 where id='002'
end try
begin catch
rollback
end catch
死锁
sys.dm_tran_locks;
---kill 进程id
隔离级别
set transaction isolation level
{
read uncommitted 未提交读
read committed 可提交读
repeatable read 可重复读
snapshot 快照
serializable 序列化读
}
--执行sql 写一般的操作脚本
--判断结论 可以用变量记录一个标记,用if-else结构处理
--确定提交还是回滚 提交commit 回滚 rollback
事务的始特性
-->原子性:全部的操作作为一个整体,要不成功,要不失败。
-->持久性:一旦事务提交不可恢复,在不备份的情况下。
-->隔离性:我在完成事务的时候,你不允许干涉我的操作,你的操作和我的操作如果有冲突,那我先做,你等着,等我做完了你再做。
-->一致性:我在执行操作的时候,必须用我的约束一直相符合,如果不符合就跑错。
--------数据库中默认每一句话都是一个事务--隐式事务
--------用户自定义的开启事务,就是显示事务
begin transaction
begin try
update bank set bknn+bknn+100 where id='001'
update bank set bknn+bknn+100 where id='002'
end try
begin catch
rollback
end catch
死锁
sys.dm_tran_locks;
---kill 进程id
隔离级别
set transaction isolation level
{
read uncommitted 未提交读
read committed 可提交读
repeatable read 可重复读
snapshot 快照
serializable 序列化读
}