42

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

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

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

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

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

    от
  • Просто интересно о фрагменте вашего вопроса, который конкретно упоминает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
  • 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.