发布网友 发布时间:2022-04-30 05:05
共6个回答
热心网友 时间:2022-04-09 00:31
如果没有猜错,楼主应该是在执行COMMIT TRANSACTION tran3 后,直接在当前的查询界面查看的表里的数据吧?对于当前会话,即使你没有执行COMMIT,所有数据都会在当前的会话里发生变化,你可以不执行COMMIT TRANSACTION tran3,直接查看表里的数据,你会看到即使没有提交任何事物,表里的数据还是发生变化了。如果你再打开一个查询窗口,你会发现直接从testtran 表里select数据是会一直等待的,因为其它会话(也就是开始你执行begin tran那个会话)有事务没有提交,表是锁定的。事务是用来保证多个会话之间不会应为事务不一致而产生脏数据。对同一会话,是看不出效果的。热心网友 时间:2022-04-09 01:49
去掉go热心网友 时间:2022-04-09 03:24
在事务问题上sqlserver比oracle差好多热心网友 时间:2022-04-09 05:15
你要加上逻辑判断才行,你这没有加,肯定会被一起执行了热心网友 时间:2022-04-09 07:23
SQL server本身有自己的处理机制,所以没有必要的话,不要乱加事务热心网友 时间:2022-04-09 09:48
如果你没有特别的需求的话,这么写没有必要的。