症状
假设你在 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 网站: