应用对象
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Developer SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

症状

假设你在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中运行 cursor 存储过程 sp_cursoropen 以及 scrollopt参数。 此外,假设以下条件为 true:

  • Scrollopt参数未设置为STATIC或FAST_FORWARD。

  • 参数 stmt 包含一个针对视图运行的查询。

  • 该视图通过使用链接服务器从表中检索数据。

  • 该表有一个包含16键列的复合索引。

在这种情况下,你会收到以下错误消息:

当前命令出现严重错误。

解决方案

累积更新信息

SQL Server 2012 的累积更新9

此问题的修补程序首次在累积更新9中发布。有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2867319 SQL Server 2012 累积更新包9注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本

SQL Server 2012 SP1 的累积更新4

此问题的修补程序首次在累积更新4中发布。有关如何获取此累积更新包的 SQL Server 2012 SP1 的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章:

2833645 SQL Server 2012 SP1 的累积更新4注意 假设这些版本是累积的,则每个新的修复版本都包含以前的 SQL Server 2012 SP1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中的文章:

2772858 在发布 SQL Server 2012 Service Pack 1 之后发布的 SQL Server 2012 版本

SQL Server 2008 R2 Service Pack 2 的累积更新6

此问题的修补程序首次在累积更新6中发布。有关如何为 SQL Server 2008 R2 Service Pack 2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2830140 SQL Server 2008 R2 Service Pack 2 的累积更新包6注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 2 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2730301 发布 SQL Server 2008 R2 Service Pack 2 后发布的 SQL Server 2008 R2 版本

状态

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

解决方法

若要解决此问题,请为复合索引使用小于16的键列。

参考

有关 sp_cursoropen游标存储过程的详细信息,请转到以下 MSDN 网站:

游标存储过程的引入 sp_cursoropen

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。