您目前已離線,請等候您的網際網路重新連線

修正: 當新的空磁碟分割在 SQL Server 2008年或 SQL Server 2008 R2 中插入一筆資料錄時,存取違規

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:2629456
Microsoft 發佈 Microsoft SQL Server 2008 Service Pack 3 (SP3) 或 Microsoft SQL Server 2008 R2 修正單一可下載的檔案。因為的修正程式是累積的每個新版本包含的所有 hotfix,並且所有先前的 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年客戶支援診斷

累積更新 8 SQL Server 2008 Service Pack 2 的第一次發行這個問題的修正程式。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2648096 SQL Server 2008 Service Pack 2 的累積更新套件 8
附註 因為組建是累計的每個新的修正版本包含的所有 hotfix,並且所有安全性修正程式先前的 SQL Server 2008年隨附的修正版本。Microsoft 建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2402659 SQL Server 2008年組建 SQL Server 2008 Service Pack 2 已發行之後所發行,
Microsoft SQL Server 2008 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2008 Service Pack 2 hotfix 套用至 SQL Server 2008 Service Pack 2 的安裝。預設情況下,提供 SQL Server service pack 中的任何 hotfix 併入下一步的 SQL Server service pack。

SQL Server 2008 R2

這個問題的修正程式首次發表累積的更新 11] 中。如需有關如何取得此累積更新套件的 SQL Server 2008 R2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2633145 累積更新套件 11 SQL Server 2008 R2
附註 因為組建是累計的每個新的修正版本包含的所有 hotfix,並且所有安全性修正程式先前的 SQL Server 2008 R2 隨附的修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
981356 SQL Server 2008 R2 組建 SQL Server 2008 R2 發行之後所發行,

SQL Server 2008 R2 Service Pack 1

累積更新 4 SQL Server 2008 R2 Service Pack 1 首次發表的修正這個問題。如需有關如何取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2633146 累積更新套件 4 SQL Server 2008 R2 Service Pack 1
附註 因為組建是累計的每個新的修正版本包含的所有 hotfix,並且所有安全性修正程式先前的 SQL Server 2008 R2 隨附的修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2567616 SQL Server 2008 R2 建置之後所發行的 SQL Server 2008 R2 Service Pack 1 所發行,

SQL Server 2008 Service Pack 3

於累積更新套件 2 SQL Server 2008 Service Pack 3 的第一次發行的修正這個問題。如需有關如何為 SQL Server 2008 Service Pack 3 中取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2633143 SQL Server 2008 Service Pack 3 的累積更新套件 2
附註 因為組建是累計的每個新的更新版本會包含所有的快速補充程式,並隨附於前一 SQL Server 2008 Service Pack 3 的所有安全性更新的都更新版本。我們建議您考慮將套用最新的更新版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2629969 SQL Server 2008年組建 SQL Server 2008 Service Pack 3 發行之後所發行,
其他相關資訊
若要確認您是否遭遇此知識庫文件所述的問題,請遵循下列步驟:
  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>是預留位置您磁碟分割表的名稱。</YourPartitionedTable>
  2. 在查詢輸出中,檢查是否 rscolid 資料行包含較大的值。以下是值的這種大的範例:
    rsid rscolid hbcolid rcmodified 包含 席德 ordkey m
    72057594380091392 016149115785604
    72057594380091392111361491157812967532650
    72057594380091392121461491157832999532650
    72057594380091392 131561491157832999532650
    72057594380091392 14166149115785900
    72057594380091392 15176149115785900
    72057594380091392 1718614911578183400
    72057594380091392 671088651961491157819627536250
    72057594380091392 22236149115785600
    72057594380091392 232461491157810407536250
    72057594380091392 242561491157866263600
在這個範例中,67108865 的值會比其他大得多。這表示您遇到此知識庫文件所述的問題。
其他可行方案
若要解決這個問題,請重建受影響的磁碟分割。請連絡 Microsoft 支援服務,以找出牽涉到資料分割。或者,您可以使用下列查詢來重建所有磁碟分割:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO

狀況說明
Microsoft 已確認這是"適用於 」 一節所列出的 Microsoft 產品的問題。

警告:本文為自動翻譯

內容

文章識別碼:2629456 - 最後檢閱時間:01/16/2012 18:31:00 - 修訂: 2.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2629456 KbMtzh
意見反應
0"; var Ctrl = ""; document.write("