sql Server 2008中的隐式和显式事务之间有什么区别?
在TransactionScope背景下会发生什么?我正在使用TransactionScope,但在sql server profiler中,我看不到“Begin transaction …”语句.
它是如何工作的?
解决方法
>隐性交易:
http://msdn.microsoft.com/en-us/library/ms188317.aspx
> SET IMPLICIT_TRANSACTIONS {ON | OFF} http://msdn.microsoft.com/en-us/library/ms187807.aspx
> SET IMPLICIT_TRANSACTIONS {ON | OFF} http://msdn.microsoft.com/en-us/library/ms187807.aspx
基本上,在将TransactionScope设置为Implicit时,在c#中,它调用sql Server SET命令将连接置于IMPLICIT_TRANSACTIONS模式.任何你做的(使用第二个链接中列出的命令之一)启动一个保持开放的事务,直到发出提交.如果在连接结束时没有发出提交,则执行隐式的ROLLBACK.
这与OFF设置不同,这也将每个语句都放在事务中 – 区别在于OFF模式(因此事务是显式的),每个事务(单数语句)都被立即提交.