Microsoft 将 Microsoft SQL Server 2008 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。
症状
请考虑以下情况:
-
在 Microsoft SQL Server 2008 中运行使用 row_number 函数的并行查询。
-
尝试使用 SELECT 语句或数据操作语言(DML)语句内的子查询运行查询。
在这种情况下,你会遇到下列问题之一:
-
如果在SELECT 语句中多次运行查询,则会收到不正确的结果。
-
如果查询在 DML 语句内运行,则该表可能包含不正确的数据。 如果表具有约束,则该语句可能会失败,并违反约束条件。例如,如果表具有主键,则 INSERT 语句可能失败,并且会发生主键冲突错误。
注意 以下情况下可能会出现这些问题:
-
将 MAXDOP 查询提示选项设置为大于 2的值。
-
将 " 最大并行度 " 选项设置为 "服务器配置" 中大于 2 的值。
解决方案
若要解决此问题,请获取最新的 SQL Server 2008 服务包。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
968382 如何获取最新的 SQL Server 2008 服务包
解决方法
若要解决此问题,请使用以下某种方法:
-
如果已应用下列更新之一,则启用4134跟踪标志:
-
Sql Server 2008 的累积更新包6或 SQL Server 2008 的更高累积更新包
-
Sql server 2008 Service Pack 1 (SP1)的累积更新包2或更高版本的 SQL Server 2008 SP1 的累积更新包
有关如何启用跟踪标记的详细信息,请访问以下 MSDN 网站:
-
-
参考 Microsoft 知识库文章970198中的 "解决方法" 部分。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970198 修复:当运行使用 SQL Server 2008 中的 row_number 函数的查询时,收到错误结果。