什么是SQLSERVER事务处理和事务回滚?

2024-11-15 23:31:43
推荐回答(2个)
回答1:

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

当一个事务的某一个操作发生问题时,整个事务可以回滚掉,就像没有做任何操作一样。这就是事务回滚。
如果一个事务的所有操作均成功,则就可以提交事务,保证事务的完整性。

应用程序主要通过指定事务启动和结束的时间来控制事务。

以MS SQL Server的Transac-SQL语言为例,
事务启动:
BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ]

结束事务
可以使用 COMMIT 或 ROLLBACK 语句结束事务。

1 事务的提交
BEGIN TRANSACTION T1
INSERT tabel1 ...
UPDATE table2 ...
...
/* 当所有成功操作完成,提交事务 */
COMMIT TRAN T1

2 事务的回滚
BEGIN TRANSACTION T1
INSERT tabel1 ...
...
/* 当发生错误或事务被取消, 回滚事务 */
ROLLBACK TRAN T1

回答2:

事务处理是指由一些列的的数据库操作完成一个事务的过程。 当一个事务的某一个操作发生问题时,整个事务可以回滚掉,就像没有做任何操作一样。这就是事务回滚。 如果一个事务的所有操作均成功,则就可以提交事务,保证事务的完整性。 应用程序主要通过指定事务启动和结束的时间来控制事务。 以MS SQL Server的Transac-SQL语言为例, 事务启动:BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ]结束事务可以使用 COMMIT 或 ROLLBACK 语句结束事务。 1 事务的提交 BEGIN TRANSACTION T1 /* 当所有成功操作完成,提交事务 */ COMMIT TRAN T1 2 事务的回滚 BEGIN TRANSACTION T1 /* 当发生错误或事务被取消, 回滚事务 */