SQL_事务处理
事务机制:将一组数据库操作命令当做一个完整且独立的操作序列,即这一组命令要么全部执行要么全执行失败.
事物:是一种机制,每个事物是独立的工作单元.
在数据库系统上执行并发操作时事物是作为最小的控制单元来使用.
事物:
原子性:成功与否都是一起的,
一致性:数据都保持一致状态
隔离性:对数据进行修改的所有并发事物是彼此隔离的
持久性:只要事物成功提交后,就不能再次回滚到提交前的状态
开始事物:begin transaction
提交事物:commit transaction
回滚事物:rollback transaction
显示事物:用begintransaction 明确事物的开始,后面是T_SQL语句都是一个整体
隐式事物:使用set implicit transaction on语句,将隐式事物设置为打开.当隐式事物操作时,sql server 将提交或回滚事物后自动启动新食物.无需手动开始事物,只需要提交或回滚事物.
自动提交事物:将每条T-sql语句事物一个事物
创建事物原则:
1:事物要尽可能简短
2:访问的数据量要少
3:浏览数据是尽量不要打开事物,避免占用资源
4:处理期间尽量不要用户输入
注意事项:
在每个操作之后都要检查@@error @@rowcount 的值 以确定操作是否成功
当一个事物结束后,紧跟在事物之后的SQL语句还可以执行,但是出错后不能回滚事物
已提交的事物会将正式写入数据库中
无法回滚的语句 create database alter database drop database 不能写在事物中使用
在事物发生错误时使得事物无法执行,事物也会回滚
事物隔离级别:
read uncommitted 不隔离数据
read committed 不允许读取没有提交的数据
repeatable read 在事物中锁定所读取的数据不让人修改和删除
snapshot 快照隔离
serialization 全部锁定,并发性最低