使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

Microsoft 将 Microsoft SQL Server 2008 Service Pack 3 (SP3)或 Microsoft SQL Server 2008 R2 修补程序分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 SP3 或 SQL Server 2008 R2 更新版本附带的所有修补程序和所有安全更新。

症状

请考虑以下情况:

  • 在 SQL Server 2008 或 SQL Server 2008 R2 中创建表的分区。

  • 不要对所有分区启用压缩。

  • 尝试将记录插入新的空分区中。

在这种情况下,会发生访问冲突并在 SQL Server 错误日志中记录以下错误:

<Date> <Time> spid##      ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid##      SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid##      * BEGIN STACK DUMP:<Date> <Time> spid##      *  Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid##      *  Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid##      *  Access Violation occurred reading address 0000000000000020 

注意 此问题也会在 Microsoft SQL Server 2008 R2 中发生。

解决方案

累积更新信息

SQL Server 2008 Service Pack 2

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

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

2402659 发布 SQL Server 2008 Service Pack 2 后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 2 修补程序应用到 SQL Server 2008 Service Pack 2 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。

SQL Server 2008 R2

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

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

981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本

SQL Server 2008 R2 Service Pack 1

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

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

2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本

SQL Server 2008 Service Pack 3

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

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

2629969 发布 SQL server 2008 Service Pack 3 后发布的 SQL Server 2008 版本

更多信息

若要确认你是否遇到了此知识库文章中所述的问题,请按照以下步骤操作:

  1. 打开到 SQL Server 的 DAC 连接,然后运行以下查询:

    Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1) 

    注意 在此查询中,<YourPartitionedTable> 是分区表名称的占位符。

  2. 在查询的输出中,检查 rscolid 列是否包含较大的值。 下面是这样一个较大值的示例:

    rsid

    rscolid

    hbcolid

    rcmodified

    ti

    cid

    ordkey m

    72057594380091392

    0

    1

    614911578

    56

    0

    72057594380091392

    11

    13

    614911578

    12967

    53265

    0

    72057594380091392

    14

    614911578

    32999

    53265

    0

    72057594380091392

    13

    614911578

    32999

    53265

    0

    72057594380091392

    14

    utf-16

    614911578

    59

    0

    0

    72057594380091392

    614911578

    59

    0

    0

    72057594380091392

    18

    614911578

    1834

    0

    0

    72057594380091392

    67108865

    19

    614911578

    19627

    53625

    0

    72057594380091392

    22

    23

    614911578

    56

    0

    0

    72057594380091392

    23

    614911578

    10407

    53625

    0

    72057594380091392

    二十五

    614911578

    662636

    0

    0

在此示例中,67108865的值比其他人大得多。 这表示你遇到了本知识库文章中所述的问题。

若要解决此问题,请重新生成受影响的分区。 请与 Microsoft 支持人员联系,了解涉及哪些分区。 或者,你可以使用以下查询重新生成所有分区:

ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO 

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

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

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×