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 產品確實有上述問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×