- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Azure SQL 中,默认隔离级别是 RCSI。我理解这种行为。据我了解,对我来说,在通过简单的 ADO.NET SqlConnection 选择数据时需要使用已提交读。我很难理解在进行简单选择时是否应用行版本控制。使用 SqlConnection 时应用的默认隔离级别是什么?
我读过
The READ_COMMITTED_SNAPSHOT database option determines the behavior of the default READ COMMITTED isolation level when snapshot isolation is enabled in a database. If you do not explicitly specify READ_COMMITTED_SNAPSHOT ON, READ COMMITTED is applied to all implicit transactions. This produces the same behavior as setting READ_COMMITTED_SNAPSHOT OFF (the default). When READ_COMMITTED_SNAPSHOT OFF is in effect, the Database Engine uses shared locks to enforce the default isolation level. If you set the READ_COMMITTED_SNAPSHOT database option to ON, the database engine uses row versioning and snapshot isolation as the default, instead of using locks to protect the data.
这是否意味着数据库只是将所有默认事务升级到 RCSI,因此如果未指定特定事务级别,它将行版本控制应用于所有内容?所以SqlConnection只是默认为RCSI而不是默认的读已提交。
最佳答案
Azure SQL 数据库默认数据库范围设置是通过将 READ_COMMITTED_SNAPSHOT 和 ALLOW_SNAPSHOT_ISOLATION 数据库选项设置为 ON 来启用读已提交快照隔离 (RCSI)。您无法更改数据库默认隔离级别。但是,您可以显式控制连接上的隔离级别。执行此操作的一种方法是,在开始事务之前,可以在 Azure SQL 数据库中使用以下任一语句:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET TRANSACTON ISOLATION LEVEL 控制由 SQL Server 连接发出的 Transact-SQL 语句的锁定和行版本控制行为,并跨批处理(GO 语句)。以上所有内容的工作方式与 SQL Server 完全相同。
此外,上述语句“SET TRANSACTION ISOLATION LEVEL READ COMMITTED”会将隔离级别设置为读已提交快照隔离(RCSI)。此隔离级别不同于已提交读 (RC)。换句话说,“SET TRANSACTION ISOLATION LEVEL READ COMMITTED”在本地 SQL Server 中的默认行为是 RC,但在 Azure SQL 数据库中是 RCSI。如果要在 Azure SQL 数据库中使用精确的 RC(而不是 RCSI)行为,您必须将锁 hint READCOMMITTEDLOCK 设置到 SQL 语句。
关于Azure SQL - 使用 ADO.NET 时的默认隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57545871/
我刚刚读过“Injecting Custom Logic in ADO.NET Data Services”,我的下一个问题是,如何使[WebGet]方法显示在客户端代理类中?当然,我可以直接使用We
我需要学习 ADO.NET 来构建基于 MS Office 的应用程序。我在 MSDN 库中阅读了大量有关 ADO.NET 的内容,但对我来说,一切都显得相当困惑。 使用 ADO.NET 时必须了解哪
所以这是交易。在我们的数据库中,出于安全性和模块化的目的,我们将大部分读取(即选择语句)包装在表值函数中。所以我有一个定义一个或多个可选参数的 TVF。 我相信具有默认参数的 TVF 要求使用关键字
我需要通过 ADO.NET 创建一个临时表,执行一个 BulkCopy然后是 Merge在临时表和实际表之间的服务器上。 问题是使用纯 ADO.NET 创建动态临时表。 架构应该与现有表相同,但该表是
我开发了一个带有自定义数据库配置的产品。我将 ADO.NET 与 System.Data.Odbc.OdbcConnection 结合使用。为了在数据库之间做出一些区别,有一个简单的解决方案来检测连接
我有一些 friend 是“老派”VB6 数据库开发人员,我向他们介绍了 .NET 及其功能,特别是 ADO.NET。 在我们的谈话中,他们提出了为什么他们宁愿坚持使用 ADO 而不是转向 ADO.N
我有一个有 6 列的数据库表。主键是由 6 列中的 5 列组成的复合键 我正在尝试使用 SqlClient.SqlCommandBuilder.GetDeleteCommand删除该行。 但是我收到以
我已经编写了一个围绕 ADO.NET 的 DbProviderFactory 的包装器,我在我的应用程序中广泛使用它。我还编写了很多将 IDataReader 行映射到 POCO 的代码。然而,由于我
我知道这已经被问过了。 大多数答案都不相关。 谷歌,显示解决方案是在“数据流任务”中配置表达式并设置查询。 然而,在 ADO .NET 源代码中,当我尝试预览输出时,我不断收到 "Must decla
我的代码如下: var statement = "test_oracle.sql"; F = aqFile.OpenTextFile(statement, aqFile.faRead, aqF
可以从 MATLAB 调用 .NET,所以我想我会尝试使用 ADO.NET 连接到数据库。 我似乎遇到了一个阻塞问题 - 无论何时您尝试创建一个 Command 对象,它都会抛出一个错误。 你可以自己
在中发现的物体之间有什么类比? JDBC 以及在 中找到的那些ADO.Net ? 我知道 JDBC 和 ADO.Net 中的对象模型并不完全相同,但我认为可以在它们之间找到一些类比(以及值得说明的关键
我有一个在 DbProviderFactory 的 machine.config 中注册的 ADO.NET 托管数据提供程序 - 它可供 Analysis Services 使用,因此我知道它已正确注
我一直在阅读有关 TransactionScope 的内容,并对它与 ADO.Net 事务的互操作性有疑问。现在我们有一些数据访问方法,每个方法都调用存储过程并开始和提交自己的单独事务。简单明了,样板
是否可以在不借助 DataAdapter 的情况下在 ADO.NET 中实现多个存储过程调用的批处理(执行更新/删除)? 最佳答案 您可以尝试使用 System.Data.SqlClient.SqlC
是否可以获取 OleDbCommand 的文本?用它们的值替换所有参数?例如。在下面的代码中,我正在寻找一种获取查询文本的方法 SELECT * FROM my_table WHERE c1 = 'h
什么更快 - ADO.NET 或 ADO.NET Entity Framework ? 最佳答案 没有什么比 ADO.NET 数据读取器更快了。 Entity Framework 也在“地下室”中使用
我需要 .NET Core 上的 ODP.NET(适用于 .NET 的 Oracle 数据提供程序),但无论如何找不到使其工作。 当我引用 OracleConnection 或 OracleComma
我正在启动一个基于 ASP.NET 和 Windows 服务器的新项目。 该应用程序计划非常大,并且为大量客户端提供高频拉取和更新服务。更改数据。 我之前曾使用 Linq-To-Sql 或 Ado.N
有没有其他快速的方法来在 ADO.Net 中填充数据表而不使用 Data adaptor.Fill 方法? 最佳答案 是的,你可以。这是一个简短的例子: var results = new DataT
我是一名优秀的程序员,十分优秀!