42

Вопрос по sql-server-2008, ado.net, transactions – Каков уровень изоляции транзакции по умолчанию для SQL Server с ADO.NET?

Каков уровень изоляции транзакции по умолчанию для SQL Server с ADO.NET? Я использую стандартную установку SQL Server и только обычные классы System.Data.SqlClient.

Просто интересно о фрагменте вашего вопроса, который конкретно упоминаетwith ADO.NET? Я считаю, независимо от поставщика w.r.t. в мире программирования на стороне клиента (Java, .Net, Python и т. д.) по умолчанию используется механизм базы данных, а НЕ провайдер. Поэтому уровень изоляции по умолчанию для SQL Server должен оставаться неизменным независимо от того, используете ли вы ADO.NET или любого другого поставщика на стороне клиента для подключения к базе данных SQL Server. Пожалуйста, поправьте меня, если я ошибаюсь.

от RBT

Для других настроек существуют различия между значениями по умолчанию для ADO.NET и SQL Server Management Studio. Так что это не совсем безопасное предположение.

от Jonathan Allen

@ Neolisk: вещи часто более сложны, чем кажутся ...stackoverflow.com/questions/9851415/…

от Remus Rusanu

@RemusRusanu: Думаю, сначала я не читаю документы. (Я не понизил)

от Neolisk

Если вы отрицаете, пожалуйста, объясните, почему

от Remus Rusanu
2 ответа
56

READ COMMITTED is the default isolation level for the Microsoft SQL Se

rver Database Engine.

Источник:

Customizing Transaction Isolation Level @ MSDN.

Вот как это сравнивается с другими уровнями изоляции:

Transaction Isolation Levels @ MSDN.

Документация MSDN дляSqlConnection.BeginTransaction() также говоритсяRead committed

... To reset the isolation level to the default (READ COMMITTED) ...

MSDN article
11

По умолчанию уровень изоляции для TransactionScope - Serializable

который обеспечивает самый высокий уровень защиты.

Смотрите ссылку ниже для получения дополнительной информации:

IsolationLevel Enumeration @ MSDN.

Этот ответ представляется более актуальным, поскольку он касается транзакций .NET, а не при использовании TSQL.

от 

Этот вопрос относится к ADO NET, который предлагает инструменты для доступа к базе данных из пространства имен System.Data (где, между прочим, уровень изоляции по умолчанию установлен на ReadCommitted). В то время как TransactionScope происходит из пространства имен System.Transactions, которое предлагает эти инструменты для источника данных в целом (например, веб-службы).

от 

Я просто опроверг это, потому что когда в .NET вы вызываете System.Data.SqlClient.SqlConnection.BeginTransaction (), полученная транзакция имеет уровень изоляции ReadCommited, как описывает hkf.

от 

Похожие вопросы