KB2421014 - 修正:當您在 SQL Server 2008 或 SQL Server 2008 R2 的 CTE 查詢中,針對索引檢視使用 Freetexttable 或 Containstable 函數時,「目前命令發生嚴重錯誤」錯誤訊息

Applies To
SQL Server 2008 SQL Server 2008 R2 SQL Server 2008 Service Pack 2

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

症狀

假設您在伺服器上安裝了 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中的具名執行個體。 當您在索引檢視表上執行 CTE) (FreeTexttable 或 Containstable 函數的 CTE 查詢時,CTE 查詢會失敗,並發生存取衝突例外狀況。 此外,您收到下列錯誤訊息:

注意

Msg 0, Level 11, State 0, Line 0
目前命令發生嚴重錯誤。 如果有結果,應丟棄。

例如,當您執行下列程式碼時,就會發生存取違規例外狀況:

WITH CTE AS  (select [Key] as Key, [Rank] from FREETEXTTABLE(< indexed view name >, *, '< search string >'))  SELECT * FROM CTE  

解決方式

累積更新資訊

SQL Server 2008 Service Pack 2

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

2527180 累積更新套件 4 適用於 SQL Server 2008 Service Pack 2 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式曾隨附於先前的 SQL Server 2008 修正程式版本。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 SQL Server 2008 Service Pack 2 發行之後所發行的 SQL Server 2008 組建Microsoft SQL Server會為特定 SQL Server Service Pack 建立 Hotfix。 您必須將 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

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

2345451 SQL Server 2008 R2 的累積更新套件 4 注意:由於組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

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

因應措施

若要解決這個問題,請使用下列其中一個方法:

  • 使用檢視表、暫存資料表或資料表變數,而不是 CTE,以儲存中繼結果。
  • 更新查詢以使用衍生資料表或子查詢。 這樣就不需要使用 CTE。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

如需有關如何使用通用資料表運算式的詳細資訊,請造訪下列 Microsoft 網站:

如何使用通用資料表運算式 如需有關 Freetexttable (Transact-SQL) 函數的詳細資訊,請造訪下列Microsoft網站:

FREETEXTTABLE (Transact-SQL) 如需有關 Containstable (Transact-SQL) 功能的詳細資訊,請造訪下列Microsoft網站:

CONTAINSTABLE (Transact-SQL) 如需如何建立索引檢視的詳細資訊,請造訪下列 Microsoft 網站:

如何建立索引檢視
        
如需有關 SQL Server 累加式服務模型的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

935897 來自 SQL Server 團隊之可傳遞解決回報問題的 Hotfix 的累加服務模型 (機器翻譯)

如需有關 SQL Server 更新命名架構的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

822499 Microsoft SQL Server 軟體更新套件的新命名架構如需有關軟體更新術語的詳細資訊,請按一下下面的文章編號,檢視「Microsoft知識庫」中的文章:

824684 描述Microsoft軟體更新所使用的標準術語說明