Microsoft は、Microsoft SQL Server 2008 および Microsoft SQL Server 2008 R2 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、各新しいリリースには、以前の 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 Service Pack 1 の累積的な更新プログラムパッケージ10注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
970365 SQL Server 2008 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 ビルド Microsoft SQL Server 2008 修正プログラムは、特定の SQL Server サービスパック用に作成されます。 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 Service Pack 2 の累積更新プログラム1注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
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 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド
回避策
この問題を回避するには、インデックス付きビューを作成した後、sp_addarticle を実行してインデックス付きビューアーティクルを追加する前に、メタデータキャッシュを更新します。注: メタデータキャッシュを更新するには、次のいずれかの方法を使用します。
-
SQL Server サービスを停止してから、サービスを開始します。
-
サブスクリプションデータベースをオフラインに設定してから、データベースを [オンライン] に設定します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Sp_addarticle ストアドプロシージャの詳細については、次の Microsoft web サイトを参照してください。
Sp_addarticle (Transact-sql) ストアドプロシージャの概要データとデータベースオブジェクトの発行の詳細については、次の Microsoft web サイトを参照してください。
データとデータベースオブジェクトの発行SQL Server の段階的サービスモデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
935897 SQL Server チームが段階的なサービスモデルを利用して、報告された問題の修正プログラムを提供するSQL Server 更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
822499Microsoft SQL Server ソフトウェア更新プログラムパッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明