KB2384766-FIX : la propriété ANSI_NULLS d’un affichage indexé est modifiée en faux après la réplication de la vue indexée dans la base de données d’abonnement dans SQL Server 2008 ou SQL Server 2008 R2

S’applique à : Microsoft SQL Server 2008 Service Pack 2SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 et Microsoft SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente de SQL Server 2008 ou SQL Server 2008 R2.

Symptômes


Prenons l’exemple du scénario suivant :
  • Vous créez une publication transactionnelle dans Microsoft SQL Server 2008 ou dans Microsoft SQL Server 2008 R2.
  • Vous avez un affichage indexé. Vous définissez la propriété ANSI_NULLS de l’affichage d’index sur true.
  • Vous ajoutez l’affichage indexé à la composition en tant qu’article. Vous définissez le type d’article sur « affichage indexé logbased ». Remarques Vous pouvez utiliser le code suivant pour spécifier le type d’affichage indexé. Procédez ainsi lorsque vous exécutez la procédure stockée sp_addarticle pour ajouter l’article d’affichage indexé à la publication.
    @type = N'indexed view logbased'
  • Vous créez un abonnement pour la publication transactionnelle.
  • L’affichage indexé est répliqué dans la base de données d’abonnement.
Dans ce scénario, la propriété ANSI_NULLS de l’affichage indexé est remplacée par false dans la base de données d’abonnement.Remarque
  • Ce problème se produit généralement lorsque la propriété ANSI_NULLS des tables impliquées dans la structure de l’expression SQL de la vue d’index est définie sur false.
  • Ce problème existe également dans Microsoft SQL Server 2005.

Cause


Ce problème survient parce que des tables, des vues, des fonctions et des procédures stockées dans SQL Server 2008 partagent le même bit de stockage pour la propriété ANSI_NULL . Par conséquent, si la propriété ANSI_NULLS de l’une des tables impliquées dans la structure d’expression SQL de la vue indexée est définie sur false, la propriété ANSI_NULLS par défaut de l’affichage indexé serait false.

Résolution


Informations sur les mises à jour cumulatives

SQL Server 2008 Service Pack 1

Le correctif de ce problème a été corrigé pour la première fois dans la mise à jour cumulative 10 pour SQL Server 2008 Service Pack 1. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2279604 Package de mise à jour cumulative 10 pour SQL Server 2008 Service Pack 1
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Microsoft vous recommande d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
970365 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 1
Des correctifs Microsoft SQL Server 2008 sont créés pour des service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2008 Service Pack 1 à une installation de SQL Server 2008 Service Pack 1. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

SQL Server 2008 Service Pack 2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2289254 Mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2402659 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 2

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 4. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2345451 Package de mise à jour cumulative 4 pour SQL Server 2008 R2
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

Solution de contournement


Pour contourner ce problème, mettez à jour le cache de métadonnées après la création de l’affichage indexé et avant l’exécution d’sp_addarticle pour ajouter l’article du mode indexé.Remarques Pour mettre à jour le cache de métadonnées, utilisez l’une des méthodes suivantes :
  • Arrêtez le service SQL Server, puis démarrez le service.
  • Définissez la base de données d’abonnement sur hors connexion, puis définissez-la sur connecté.

Statut


Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références


Pour plus d’informations sur la procédure stockée sp_addarticle, consultez le site Web de Microsoft suivant :Pour plus d’informations sur la publication de données et d’objets de base de données, visitez le site Web Microsoft suivant :Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
935897 Un modèle de maintenance incrémentiel est disponible auprès de l’équipe SQL Server pour obtenir des correctifs pour les problèmes signalés
Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
822499 Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL Server
Pour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft