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 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 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

    4

    72057594380091392

    11

    614911578

    12967

    53265

    0

    72057594380091392

    之間

    4

    614911578

    32999

    53265

    0

    72057594380091392

    工資

    614911578

    32999

    53265

    0

    72057594380091392

    4

    614911578

    59

    0

    0

    72057594380091392

    工資

    11x17

    614911578

    59

    0

    0

    72057594380091392

    11x17

    滿

    614911578

    1834

    0

    0

    72057594380091392

    67108865

    614911578

    19627

    53625

    0

    72057594380091392

    22

    614911578

    56

    0

    0

    72057594380091392

    24

    614911578

    10407

    53625

    0

    72057594380091392

    24

    614911578

    662636

    0

    0

在這個範例中,67108865的值會比其他人大。 這表示您遇到此知識庫文章中所述的問題。

若要解決此問題,請重建受影響的分區。 若要瞭解涉及哪些分區,請聯絡 Microsoft 支援人員。 或者,您可以使用下列查詢重建所有分區:

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

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對翻譯品質的滿意度為何?

會影響您使用體驗的因素為何?

是否還有其他的意見反應? (選填)

感謝您的意見反應!

×