事务与日志的问题?
SQL Server中,是不是:
begin transaction
。。。
commit
这整个才算一个事务,日志里就是记录事务的所有操作?
那么单独的一条insert、delete或者update语句算是一个事务吗?日志里是不是也要记录?
------解决方案--------------------sql server 的事务,具体可以分为2种,
一种就是显式事务:
begin transaction
。。。
commit
就是必须得用这种形式
第二种就是单独一个insert、delete或者update语句 也是事务。
这两种都会记录到日志中的
------解决方案--------------------你说的begin tran commit是显式事务,
单独一句的insert delete,update是隐式事务,也就是说运行完成后自动提交,不需要明确地控制
隐式事务当然也记录日志,跟显式事务是一样的。
关于事务的更多内容,这里有一篇文章写的不错,可以参考
http://www.cnblogs.com/rush/archive/2011/12/11/2284262.html
------解决方案--------------------与当前连接的事务模式有关,set implicit_transactions on/off
当set implicit_transactions off时,则使连接恢复为自动提交事务模式.(默认情况)
当set implicit_transactions on时,执行insert、delete或update语句后需commit或rollback.
参考 http://msdn.microsoft.com/zh-cn/library/ms187807(v=sql.105).aspx