忘電子工掌出社 第9章.事务处理 9.1引言 9.2 Transact-Q语句和事务处理 9.3锁定
第9章.事务处理 • 9.1 引言 • 9.2 Transact-SQL语句和事务处理 • 9.3 锁定
忘電子工掌出社 9.1引 事务( Transaction)与锁定(Lock)可以确保数据在存储或 修改过程中受到其他用户的中断时,能够正确地被存 储、修改,而不会造成数据因被存储或修改到一半而 导致数据不完整 事务是 SQL Server中的执行单元,它由一系列TSQL语 句组成。事务处理必须满足ACID原则。ACID指原子 性( Atomicity)、一致性( Consistency)、隔离性( Isolation) 与持久性( Durability) 事务的这种机制保证了一个事务或者提交后成功执行, 或者提交后失败滚回。也就是说,执行事务的结果或 是将数据所要执行的操作全部完成,或是全部数据 点也不修改 返回目录
9.1 引言 • 事务(Transaction)与锁定(Lock)可以确保数据在存储或 修改过程中受到其他用户的中断时,能够正确地被存 储、修改,而不会造成数据因被存储或修改到一半而 导致数据不完整。 • 事务是SQL Server中的执行单元,它由一系列T-SQL语 句组成。事务处理必须满足ACID原则。ACID指原子 性(Atomicity)、一致性(Consistency)、隔离性(Iso1ation) 与持久性(Durability)。 • 事务的这种机制保证了一个事务或者提交后成功执行, 或者提交后失败滚回。也就是说,执行事务的结果或 是将数据所要执行的操作全部完成,或是全部数据一 点也不修改。 • 返回目录
忘電子工掌出来 烈和 HUPpERt 92 Transact-SQL语句和事务处理 事务是一种机制,是一个操作序列,它包含了一组数据库操作命 令,即由一系列TSQL语句组成。 SQL Server的事务可分为两类 系统提供的事务和用户定义的事务 系统提供的事务是指在执行某些T-SOL语句时,一条语句就构成 个事务,这些语句是: LALTER TABLE 2 CREATE 3. DELETE 4, DROP 5.REVOKE .6,SELECT 7.TRUNCATE TABLE 8. INSERT 8. OPEN 9 UPDATE 11.GRANT 12. FETCH 返回目录
9.2 Transact-SQL语句和事务处理 • 事务是一种机制,是一个操作序列,它包含了一组数据库操作命 令,即由一系列T-SQL语句组成。SQL Server的事务可分为两类:: 系统提供的事务和用户定义的事务。 • 系统提供的事务是指在执行某些T-SQL语句时,一条语句就构成 了一个事务,这些语句是: • 1.ALTER TABLE • 2.CREATE • 3.DELETE • 4.DROP • 5.REVOKE • 6.SELECT • 7.TRUNCATE TABLE • 8.INSERT • 8.OPEN • 9.UPDATE • 11.GRANT • 12.FETCH 返回目录
忘電子工掌出社 92 Transact-SQL语句和事务处理 例如执行创建表的语句: Create table users id int not null username varchar (20) password varchar(20) 这条语句本身就构成了一个事务,它要么建立起含3列的表结构, 要么对数据库没有任何影响 在实际应用中,经常使用的是用户自定义的事务。事务的定义方 法是:用 BEGIN TRANSACTION命令来标识一个事务的开始, 用 COMMIT TRANSACTION或 ROLLBACK TRANSACTION命令 来标识事务的结束。这两个命令之间的所有语句被视为一体,只 有执行到 COMMIT TRANSACTION命令时,事务中对数据库的 更新操作才算确认 返回目录
9.2 Transact-SQL语句和事务处理 • 例如执行创建表的语句: • Create table users • ( • id int not null, • username varchar(20), • password varchar(20) • ) • 这条语句本身就构成了一个事务,它要么建立起含3列的表结构, 要么对数据库没有任何影响。 • 在实际应用中,经常使用的是用户自定义的事务。事务的定义方 法是:用BEGIN TRANSACTION 命令来标识一个事务的开始, 用COMMIT TRANSACTION或ROLLBACK TRANSACTION命令 来标识事务的结束。这两个命令之间的所有语句被视为一体,只 有执行到 COMMIT TRANSACTION 命令时,事务中对数据库的 更新操作才算确认。 返回目录
電邮( N TRANSACTION语句 BEGIN TRANSACTION语句定义事务的开始,其语法 格式为: BEGIN TRAN[SACTION [transaction_name atran name variable [WITH MARKT description] 其中,参数 transaction name指定事务的名称,必须遵 循标识符规则,字符数不超过32个字符。 etran name variable表示用户定义的、含有效事务名 称的变量。变量只能声明为CHAR、 VARCHAR、 NCHAR或 NVARCHAR类型。 WITH MARK指定在日 志中标记事务, description是描述该标记的字符串 BEGIN TRANSACTION语句的执行使全局变量 @ TRANCOUNT的值加1。(@@ TRANCOUNT是用 来计算当前连接中现有事务的数目。)回目录
• 1. BEGIN TRANSACTION语句 • BEGIN TRANSACTION语句定义事务的开始,其语法 格式为: • BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable • [WITH MARK[‘description’]] • 其中,参数transaction_name指定事务的名称,必须遵 循标识符规则 , 字符数不超过 32 个字符 。 @tran_name_variable表示用户定义的、含有效事务名 称的变量。变量只能声明为 CHAR、VARCHAR、 NCHAR 或NVARCHAR 类型。WITH MARK指定在日 志中标记事务,description是描述该标记的字符串。 • BEGIN TRANSACTION 语 句 的 执 行 使 全 局 变 量 @@TRANCOUNT的值加1。(@@TRANCOUNT是用 来计算当前连接中现有事务的数目。) 返回目录