Microsoft 以一个可下载文件的形式分发 Microsoft SQL Server 2008 R2 修补程序。 由于修补程序是累积的,因此每个新版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。
症状
请考虑以下方案:
情形 1
-
在 Microsoft SQL Server 2008 R2、Microsoft SQL Server 2012 或 Microsoft SQL Server 2008 中删除分区表的列。
-
为表创建新分区。
-
您尝试将数据插入到表的新分区中。
-
你可以切换表的分区。
-
您尝试将数据插入到表的新分区中。
在这种情况下,可能会发生访问冲突。 此外,你还会收到以下错误消息:
当前命令出现严重错误。 应丢弃结果(如果有)。
情形 2
-
在 SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2008 中有一个分区表。
-
更改分区的压缩类型。
-
尝试更新分区或将数据插入分区。
在这种情况下,可能会发生访问冲突。 此外,你还会收到以下错误消息:
当前命令出现严重错误。 应丢弃结果(如果有)。
原因
出现此问题的原因是 SQL Server 用于将数据插入到不同分区的访问器识别元数据更改不正确。 将数据插入到删除列后创建的新分区中后,新分区中的最大可空列数可能比旧分区中的最大可空列数少一。
解决方案
累积更新信息
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 版本
SQL Server 2012 累积更新7
此问题的修补程序首次在累积更新7中发布。有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2823247 SQL Server 2012 累积更新包7注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
SQL Server 2008 R2 Service Pack 1 的累积更新12
此问题的修补程序首次在累积更新12中发布。有关如何为 SQL Server 2008 R2 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2828727 SQL Server 2008 R2 Service Pack 1 的累积更新程序包12注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本
SQL Server 2008 的累积更新 10 Service Pack 3
此问题的修补程序首次在累积更新10中发布。有关如何获取此累积更新包的 SQL Server 2008 Service Pack 3 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2814783 SQL Server 2008 的累积更新程序包 10 Service Pack 3注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 Service Pack 3 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 发布 SQL server 2008 Service Pack 3 后发布的 SQL Server 2008 版本
SQL Server 2008 R2 Service Pack 1
此问题的修补程序首次在累积更新9中发布。有关如何为 SQL Server 2008 R2 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2756574 SQL Server 2008 R2 Service Pack 1 的累积更新包9注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本
SQL Server 2008 R2
此问题的修补程序首次在累积更新7中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2507770 SQL Server 2008 R2 的累积更新包7 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
SQL Server 2008 R2 的 Service pack 信息
若要解决此问题,请获取最新的 SQL Server 2008 R2 服务包。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2527041如何获取最新的 SQL Server 2008 R2 服务包
解决方法
若要解决此问题,请在删除其中一个表的列后重新生成分区表的所有分区。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。此问题首先在 SQL Server 2008 R2 Service Pack 1 中更正。
更多信息
有关如何创建压缩表和索引的详细信息,请转到以下 MSDN 网站: