症状

请考虑以下情况:

  • 你的数据库具有在 Microsoft SQL Server 2012 或 SQL Server 2014 中启用的快照隔离或已提交快照隔离级别。

  • 数据库包含包含多列聚集索引的非空表。 聚集索引的前导键设置为 NOT NULL。

  • 开始事务并将列添加到表中。 此列的值已更新。

  • 更改聚集索引的前导键以允许 NULL 值。

  • 为聚集索引的前导键插入具有 NULL 值的行,然后中止事务。

在这种情况下,回退会导致数据库不会出现可疑问题,并且仅通过 "修复" 命令 REPAIR_ALLOW_DATA_LOSS 的 DBCC CHECKDB 。 此外,你还可能会收到以下错误消息:

消息3316、级别21、状态2、行135在对数据库 ' ' %1! ' 执行日志记录操作时出现错误,日志记录 ID% S_LSN 出现错误。 找不到行。 从完整备份还原数据库,或修复数据库。

解决方案

SQL Server 2014 的 Service pack 信息

若要解决此问题,请获取 SQL Server 2014 的 Service Pack 1。

有关 SQL Server 2014 Service Pack 1 (SP1)的详细信息,请参阅 在 SQL server 2014 Service Pack 1 中修复的 bug

SQL Server 2012 的 Service pack 信息

若要解决此问题,请获取最新的 Microsoft SQL Server 2012 服务包。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2755533 如何获取最新的 SQL Server 2012 服务包

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×