隐式事务,显式事务,自动提交事务

隐式事务,显式事务,自动提交事务

1,事务在数据库中主要用于保证数据的一致性,防止出现错误数据

事务的基本控制语句

BEGIN TRANSACTION 表示本地事务的开始

BEGIN DISTRIBUTED TRANSACTION表示分布式事务起始

COMMIT TRANSACTION表示事务的提交

ROLLBACK TRANSACTION表示事务的回滚

COMMIT事务的提交 与COMMIT TRANSACTION功能相同

ROLLBACK 事务的回滚与ROLLBACK TRANSACTION功能相同

SAVE TRANSACTION设置事务保存点

创建表语句

CREATE TABLE ORDERINFO(

CUSTOMID INT NULL,

PRODUCTID INT NULL,

ORDERQUANTITY VARCHAR(100) NULL

)

SELECT * FROM ORDERINFO

显式事务

–通过begin transaction 语句来显式启动事务,并由commit transaction语句进行提交

—begin transaction 之后的所有操作都在一个事务中一旦出现错误事务会进行回滚,将清除begin transaction之后所有操作,回到原点

–语法如下

begin {tran|transaction}[

{transaction_name |@tran_name_varible}

[with mark[‘description’]]

]

[;]

–begin 开始事务的关键词

–{tran|transaction},和begin一起表示事务开始

–transaction_name,事务名称

–@tran_name_varible,变量名称,将接受一个事务名称。该变量只能通过char,varchar,nchhar,nvarchar数据类型声明,

–with mark 在日志中标记事务 description 是描述该标记的字符串

–下面介绍如何使用显式事务

BEGIN TRANSACTION TR_ORDERINFO

INSERT INTO [dbo].[ORDERINFO] (CUSTOMID,PRODUCTID,ORDERQUANTITY)

VALUES(14,11110,'10')

GO

UPDATE ORDERINFO SET PRODUCTID=120000 WHERE CUSTOMID=14

GO

COMMIT TRANSACTION TR_ORDERINFO

–第1行表示显式的开启一个事务 事务名称为 TR_ORDERINFO

–第2-3行表示为 ORDERINFO表加入数据

–第5行表示在表中修改数据

–第7行表示提交事务 如果没有第7行表示进入等待状态而查不到数据

–2隐式事务

–隐式事务需要用T_语句才能打开,打开隐式事务的语句是

SET IMPLICIT_TRANSACTIONS ON

–一旦隐式事务打开,数据库实例第一次执行alert table,insert,create,open,delete,revoke,drop,select,fetch,truncate table,grant,update语句时,会自动开启一个事务,开启的事务需要利用commit或rollback结束;当事务结束时,一旦运行以上类型的语句,会再次自动开启一个新的事务,

–这样就形成了一个事务链

SET IMPLICIT_TRANSACTIONS ON

INSERT INTO [dbo].[ORDERINFO] (CUSTOMID,PRODUCTID,ORDERQUANTITY)

VALUES(16,21110,'20')

GO

UPDATE ORDERINFO SET PRODUCTID=220000 WHERE CUSTOMID=16

GO

COMMIT

SET IMPLICIT_TRANSACTIONS OFF

–第1行表示开启隐式事务

–第2-3行表示为 ORDERINFO表加入数据

–第5行表示在表中修改数据

–第7行表示提交事务 第8行关闭隐式事务

–3,自动提交事务

–自动提交事务是sqlserver默认模式,该类型不需要开发人员手工做任何操作,每个单独的T_SQL语句都在其完成后自动提交,如果出现错误则回滚,

–所以开发人员无法对其严格控制不适合大规模导入,不适合业务关联数据录用,如果完成一项业务需要3句语句,当第二条出错时,第一条无法撤销,所以无法保证事务一致型

上一篇: 特殊尊謙敬語,快速對照表!
下一篇: 痈的辨证论治有哪些

相关文章

好家伙!蔡司镜头用在手机上是什么体验?vivo给出了答案
windows2003最详细的安装操作步骤.(最详细)
Linux僵尸进程问题及解决方法
中移禹路由器怎么样?详细评测和设置教程
财富顾问,可爱的一群人 一位基层证券从业者财富顾问,可爱的一群人财富顾问(在有的证券公司又称为理财顾问),无论是在业内还是业外,给人的整体印象...
如何在泰国单人跳伞?泰国水上跳伞