14得票2回答
不明确的更新冲突

我有两个问题: 1. 在这种情况下,为什么我会遇到更新冲突而不是仅仅阻止: -- prepare drop database if exists [TestSI]; go create database [TestSI]; go alter database [TestSI] set RE...

12得票1回答
为什么我在插入操作时会遇到快照隔离问题?

给定两个表 父表 KeyID GroupID Name Active 子元素 KeyID ParentID Name Child.ParentID被外键关联到Parent.KeyID 我们在一个事务中同时插入Parent和Child。 如果在事务进行时更新了不...

12得票1回答
在单个事务中,如果同一条记录有多次更新,会存储多少个版本?

根据金伯利·L·特里普(Kimberly L. Tripp)和尼尔·格雷夫斯(Neal Graves)在MSDN文章中的说法,SQL Server 2005基于行版本控制的事务隔离机制中,一个特定记录的所有早期版本都以链表的形式链接在一起。对于长时间运行的基于行版本控制的事务来说,在每次访问时...

12得票5回答
为什么我会收到“由于更新冲突,快照隔离事务中止”的错误消息?

我们有两个表 1. Parent(Id int identity,Date datetime,Name nvarchar) 2. Child(Id int identity,ParentId int,Date datetime,Name nvarchar) Child表与Parent表建立...

10得票1回答
10得票3回答
当一个连接被关闭并返回到连接池时,它会保留上次“SET TRANSACTION ISOLATION LEVEL”语句设置的隔离级别。

MSDN在线文章“SQL Server中的快照隔离级别”指出: - 隔离级别具有连接范围,一旦使用SET TRANSACTION ISOLATION LEVEL语句为连接设置了隔离级别,它将有效直到连接关闭或设置了另一个隔离级别。当连接关闭并返回到连接池时,将保留最后一次SET TRANSA...

9得票1回答
在“读提交快照隔离级别”(RCSI)下获取的共享锁

我在使用RCSI时发现了对共享锁(LCK_M_S)的等待。据我理解,这不应该发生,因为在使用RCSI时,SELECT语句不需要共享锁。 为什么我会看到共享锁呢?是因为外键的原因吗?

7得票1回答
RCSI和SNAPSHOT相比,使用的空间更少还是一样多?为什么呢?

尝试更好地理解基于行版本的事务隔离 - RCSI(读提交快照隔离和快照)- 在SQL Server中... MSDN在线文章“选择基于行版本的隔离级别”指出: - “对于大多数应用程序,推荐使用使用行版本的读提交隔离,而不是快照隔离,原因如下: - 它消耗的临时数据库空间比快照隔离少...

7得票1回答
在只读/备用数据库上的Snapshot_isolation_state_desc

我已经配置了日志传送,其中主服务器数据库的 snapshot_isolation_state_desc 报告为 off。我尝试在作为只读备用的次要服务器上关闭它,使用了 GUI 和 T-SQL 语句来禁用: ALTER DATABASE ABC SET ALLOW_SNAPSHOT_ISOL...

7得票2回答
为什么在SNAPSHOT隔离级别下无法在临时表上创建索引?

当我在使用快照事务隔离时,尝试在SQL Server上的临时表上创建索引时,会出现以下错误: “由于元数据不是版本化的,所以在快照隔离中混合使用可能导致一致性问题,因此此DDL语句不允许在快照隔离事务中执行。” 为什么在使用快照时,不允许在SQL Server上的临时表上创建索引? 我不...