TransactionScope IsolationLevel未在Azure中应用

时间:2014-01-27 13:21:57

标签: sql azure transactionscope

在Azure中的数据库中,我们遇到了很多死锁。我们尝试将TransactionScope类的隔离级别更改为read committed和seriazeble,但死锁图表一直表示隔离级别是读取提交的(2)。我们假设它一直使用读提交的快照隔离级别,这是SQL Azure中的默认级别。 我们需要设置一些其他设置让SQL Azure采用我们想要的隔离级别吗?

transactioncope代码:

Dim transOption As Transactions.TransactionOptions = New Transactions.TransactionOptions() transOption.IsolationLevel = Transactions.IsolationLevel.ReadCommitted Using scope As New Transactions.TransactionScope(Transactions.TransactionScopeOption.Required, transOption) ... scope.Complete End Using

我们还尝试将Required更改为RequiresNew作为事务范围选项,但没有成功。

1 个答案:

答案 0 :(得分:0)

USE AdventureWorks2012;
GO    
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

更多信息:

https://social.technet.microsoft.com/wiki/contents/articles/1639.handling-transactions-in-windows-azure-sql-database.aspx