Microsoft 將 Microsoft SQL Server 2008 與 Microsoft SQL Server 2008 R2 發佈為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 或 SQL Server 2008 R2 修正版本中所包含的所有熱修復程式及所有安全性修正程式。
徵狀
請試想下列案例:
-
您在 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中建立事務性發佈。
-
您有索引視圖。 您可以將 [索引] 視圖的 [ ANSI_NullS ] 屬性設定為 TRUE。
-
您可以將索引視圖新增至出版物,做為文章。 您將 [專案類型] 設定為 [索引視圖 logbased]。記事 您可以使用下列程式碼來指定索引檢視類型。 當您執行 sp_addarticle 的儲存程式,將索引視圖專案新增至出版物時,請執行此動作。
@type = N'indexed view logbased'
-
您為交易發佈建立訂閱。
-
[索引] 視圖會複製到訂閱資料庫。
在這種情況下,在訂閱資料庫中,索引視圖的 ANSI_NullS 屬性會變更為 FALSE。注意事項
-
當 [索引] 視圖的 SQL 運算式結構中所涉及之資料表的 ANSI_NullS 屬性設定為 FALSE 時,通常會發生這個問題。
-
這個問題也存在於 Microsoft SQL Server 2005 中。
原因
發生這個問題的原因是 SQL Server 2008 中的資料表、視圖、函數及儲存程式都為 ANSI_Null 屬性共用相同的儲存位。 因此,如果在索引視圖的 SQL 運算式結構中所涉及的其中一個資料表的 ANSI_NullS 屬性設定為 false,則索引視圖的預設 ANSI_NullS 屬性就會是 false。
解決方案
累積更新資訊
SQL Server 2008 Service Pack 1
此問題的修正程式會在 SQL Server 2008 Service Pack 1 的累積更新10中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2279604 SQL Server 2008 的累積更新套件 10 Service Pack 1注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 在發行 SQL Server 2008 Service Pack 1 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 1 修補程式套用至 SQL Server 2008 Service Pack 1 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
SQL Server 2008 Service Pack 2
此問題的修正程式是在 SQL Server 2008 Service Pack 2 的累積更新1中第一次發行。 如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2289254 SQL Server 2008 的累積更新 1 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建
SQL Server 2008 R2
此問題的修正程式是以累積更新4第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2345451 SQL Server 2008 R2 的累積更新套件4 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
因應措施
若要解決此問題,請在建立索引視圖之後更新中繼資料快取,並在執行 sp_addarticle 之後,才能新增索引視圖文章。注意事項 若要更新中繼資料快取,請使用下列其中一種方法:
-
停止 SQL Server 服務,然後啟動服務。
-
將 [訂閱資料庫] 設定為 [離線],然後將資料庫設為 [線上]。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
如需 sp_addarticle 的儲存程式的詳細資訊,請造訪下列 Microsoft 網站:
Sp_addarticle (Transact-sql)預存程序簡介如需發佈資料和資料庫物件的詳細資訊,請流覽下列 Microsoft 網站:
發佈資料和資料庫物件如需有關 SQL Server 的增量服務模型的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
935897 您可以從 SQL Server 團隊取得增量服務模型,以提供已報告問題的修補程式如需 SQL Server 更新命名架構的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
822499Microsoft SQL Server 軟體更新套件的新命名架構如需軟體更新術語的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明