SQLSever--事务与索引

Posted EasonDongH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLSever--事务与索引相关的知识,希望对你有一定的参考价值。

问题抛出:

当同时执行多条SQL语句时,如果其中一条语句发生错误,而其他语句正常执行了,就会导致数据库数据对不上,怎么办?用事务!

事务(Transaction)

概念:事务作为一个逻辑工作单元来执行一系列操作,多个操作为一个整体,要么全部执行,要么全部不执行,保证数据的一致性!

特性:

分类:

显式事务:用BEGIN TRANSACTION明确事务开始。

隐性事务:

自动提交事务:

每个单独的SQL语句都被自动默认为一个事务。

 

事务如何工作?

事务启动时,所有操作先被写到日志,当整个过程没有错误时,则把事务里的所有操作一次性提交;如果执行过程有错误,则会把之前的操作撤销。即使是在事务执行过程中遭到外界原因导致数据库异常,在下次启动数据库的时候也能根据日志内容来完成未完成的操作。

 

事务的创建和使用

基本步骤:

开始事务:BEGIN TRANSACTION

提交事务:COMMIT TRANSACTION

回滚事务:ROLLBACK TRANSACTION

用@@error来判断是要回滚还是提交。

代码示例:

ADO.NET中的事务编写:

索引

索引的使用是用来提高查询速度的,等以后有实际需求接触到再来补充!

以上是关于SQLSever--事务与索引的主要内容,如果未能解决你的问题,请参考以下文章

sqlsever收缩数据库日志操作

4-04数据库的备份与还原

SQL Sever索引

SqlSever基础 单行注释与多行注释

SqlSever基础 标识增量与标识种子的意思

SqlSever基础 where and 逻辑与