KB2504090 - 修正:當您在 SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2008 中,在分割資料表中插入資料或更新其新磁碟分割時,存取違規或結果不正確

Applies To
SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Web SQL Server 2008 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Microsoft 會發佈 Microsoft SQL Server 2008 R2 修正程式作為一個可下載的檔案。 由於修正程式是累積式,因此每個新版本都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。

症狀

請參考以下案例:

案例 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 用來將資料插入不同磁碟分割的存取器無法正確辨識中繼資料變更。 將資料插入捨棄欄位之後所建立的新磁碟分割時,新磁碟分割中可為 Null 值欄數目上限可能會比舊磁碟分割中可為 Null 值上限的資料行數目少一個。

解決方式

累積更新資訊

SQL Server 2012 SP1 的累積更新 4

此問題的修正程式最初在累積更新 4 中發行。 如需有關如何取得此 SQL Server 2012 SP1 累積更新套件的詳細資訊,請按一下下面的文件編號,前往「Microsoft 知識庫」中的文件:

2833645 SQL Server 2012 SP1 的累積更新 4 注意:由於組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2012 SP1 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需更多資訊,請點選下方文章編號,前往 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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2012 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在 SQL Server 2008 R2 Service Pack 1 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2008 Service Pack 3 的累積更新 10

此問題的修正程式最初在累積更新 10 中發行。 如需有關如何取得此 SQL Server 2008 Service Pack 3 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2814783 累積更新套件 10 適用於 SQL Server 2008 Service Pack 3 注意: 由於組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 Service Pack 3 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2008 R2 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2008 R2 的 Service Pack 資訊

若要解決此問題,請取得 SQL Server 2008 R2 的最新 Service Pack。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2527041 如何取得 SQL Server 2008 R2 的最新版 Service Pack (機器翻譯)

因應措施

若要解決此問題,請在捨棄資料表的其中一個資料行之後,重建分割資料表的所有磁碟分割。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
此問題最初已在 SQL Server 2008 R2 Service Pack 1 中更正。

更多資訊

如需有關如何建立壓縮表格和索引的詳細資訊,請前往下列 MSDN 網站:

資料壓縮