sqlserver查看事务
⑴ 什么是sqlSERVER事务处理和事务回滚
事务(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
⑵ sql的事务问题
如果没有猜错,楼主应该是在执行COMMIT TRANSACTION tran3 后,直接在当前的查询界面查看的表里的数据吧?对于当前会话,即使你没有执行COMMIT,所有数据都会在当前的会话里发生变化,你可以不执行COMMIT TRANSACTION tran3,直接查看表里的数据,你会看到即使没有提交任何事物,表里的数据还是发生变化了。如果你再打开一个查询窗口,你会发现直接从testtran 表里select数据是会一直等待的,因为其它会话(也就是开始你执行begin tran那个会话)有事务没有提交,表是锁定的。事务是用来保证多个会话之间不会应为事务不一致而产生脏数据。对同一会话,是看不出效果的。