第十七章 进行事务处理的SQL语句
所谓事务,就是把多件事情当做一件事情来处理。SQL中的事务是指用户定义的一个数据库操作序列,这些操作要么全做要么全不做,它是一个不可分割的工作单位。一个事务可以是一条SQL语句,一组SQL语句,或整个程序。MS
JET-SQL从ACCESS 2000开始支持事务处理,提供了BEGIN
TRANSACTION、COMMIT、ROLLBACK等语句来处理开始事务处理、事务提交或回滚等。要注意的是和ANSI SQL用COMMIT或者ROLLBACK不同,JET-SQL采用自己的事务标志,因为JET-SQL不会自动开始事务处理(不支持隐性事务处理)。
一、关于事务处理SQL语句的语法
ACCESS处理事务的SQL语法:
1、开始一个事务处理
BEGIN
TRANSACTION;
此语句初始化新事务处理,即启动一个事务处理。
2、结束并提交一个事务处理
COMMIT
[TRANSACTION | WORK];
通过提交事务处理期间执行的所有工作来结束事务处理。
3、结束并取消修改,回滚
ROLLBACK
[TRANSACTION | WORK];
通过回滚事务处理期间执行的所有工作来结束事务处理。
二、关于事务处理SQL语句的几点说明
事务处理不会自动启动。若要启动一个事务处理,必须通过BEGIN TRANSACTION进行显式调用。
事务处理嵌套的最大深度为五级。若要启动一个嵌套事务处理,请在现有的事务处理上下文中使用BEGIN TRANSACTION。
链接表不支持事务处理。
Access的查询只能包含一条SQL语句,不能像大型数据,如SQL server一样在存储过程中直接执行多条语句,因而只能在VBA代码过程中多条语句绑成一个事务放在一起执行。