症狀
請考慮以下案例:
您可以執行 INSERT 陳述式,將包含大型物件 (LOB) 資料的記錄插入 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中的快照資料庫。
您收到下列錯誤訊息:
注意
無法更新資料庫 “<DatabaseName>”,因為資料庫是唯讀的。
重新啟動 SQL Server,然後嘗試再次插入記錄。
在這種情況下,INSERT 陳述式會以無限迴圈執行,而且不會傳回任何結果。 此外,「Non-yield Scheduler」錯誤訊息會記錄在 SQL Server 錯誤記錄檔中,並產生傾印檔案。
解決方式
累積更新資訊
SQL Server 2008 R2 SP2 的累積更新 4
此問題的修正程式最初在累積更新 4 中發行。 如需有關如何取得 SQL Server 2008 R2 SP 2 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2777358 SQL Server 2008 R2 Service Pack 2 的累積更新套件 4
注意:由於這些組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 SP 2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2730301 發行 SQL Server 2008 R2 Service Pack 2 之後所發行的 SQL Server 2008 R2 組建
SQL Server 2008 R2 Service Pack 1 的累積更新套件 10
此問題的修正程式最初在累積更新 10 中發行。 如需有關如何取得 SQL Server 2008 R2 SP1 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2783135 SQL Server 2008 R2 SP1 的累積更新套件 10
注意:由於這些組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 SP1 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 在 SQL Server 2008 R2 Service Pack 1 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)
累積更新 8 適用於 SQL Server 2008 Service Pack 3 (SP3)
此問題的修正程式最初在累積更新 8 中發行。 如需有關如何取得此 SQL Server 2008 Service Pack 3 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2771833 SQL Server 2008 Service Pack 3 的累積更新套件 8 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式隨附於先前的 SQL Server 2008 Service Pack 3 修正程式版本。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2629969 發行 SQL Server 2008 Service Pack 3 之後所發行的 SQL Server 2008 組建
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。