KB2384766: la propiedad ANSI_NULLS de una vista indizada se cambia a FALSE después de replicar la vista indizada en la base de datos de suscripciones en SQL Server 2008 o en SQL Server 2008 R2

Se aplica a: Microsoft SQL Server 2008 Service Pack 2SQL Server 2008 R2

Microsoft distribuye las soluciones Microsoft SQL Server 2008 y Microsoft SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 o SQL Server 2008 R2.

Síntomas


Imagine la siguiente situación:
  • Cree una publicación transaccional en Microsoft SQL Server 2008 o en Microsoft SQL Server 2008 R2.
  • Tienes una vista indizada. La propiedad ANSI_NULLS de la vista de índice se establece en true.
  • La vista indizada se agrega a la publicación como un artículo. El tipo de artículo se establece en "vista indizada logbased". Nota: Puede usar el código siguiente para especificar el tipo de vista indizada. Haga esto cuando ejecute el sp_addarticle procedimiento almacenado para agregar el artículo de la vista indizada a la publicación.
    @type = N'indexed view logbased'
  • Cree una suscripción para la publicación transaccional.
  • La vista indizada se replica en la base de datos de suscripciones.
En este escenario, la propiedad ANSI_NULLS de la vista indizada cambia a false en la base de datos de suscripciones.Notas
  • Este problema suele ocurrir cuando la propiedad ANSI_NULLS de las tablas que participan en la estructura de la expresión SQL de la vista de índice se establece en false.
  • Este problema también existe en Microsoft SQL Server 2005.

Causa


Este problema se produce porque las tablas, las vistas, las funciones y los procedimientos almacenados en SQL Server 2008 comparten el mismo bit de almacenamiento para la propiedad ANSI_NULL . Por lo tanto, si la propiedad ANSI_NULLS de una de las tablas implicadas en la estructura de la expresión SQL de la vista indizada se establece en false, la propiedad predeterminada de ANSI_NULLS para la vista indizada sería falsa.

Resolución


Información sobre la actualización acumulativa

Service Pack 1 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 10 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2279604 Paquete de actualización acumulativa 10 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365 Las compilaciones de SQL Server 2008 que se lanzaron después de publicar SQL Server 2008 Service Pack 1
Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 1 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 1 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2289254 Actualización acumulativa 1 para SQL Server 2008 Service Pack 2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2

SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2345451 Paquete de actualización acumulativa 4 para SQL Server 2008 R2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Solución alternativa


Para evitar este problema, actualice la caché de metadatos después de crear la vista indizada y antes de ejecutar sp_addarticle para agregar el artículo de la vista indizada.Notas Para actualizar la caché de metadatos, use uno de los métodos siguientes:
  • Detenga el servicio de SQL Server y, a continuación, inicie el servicio.
  • Establezca la base de datos de suscripciones como sin conexión y, a continuación, establezca la base de datos en conectado.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

Referencias


Para obtener más información sobre el sp_addarticle procedimiento almacenado, visite el siguiente sitio web de Microsoft:Para obtener más información sobre la publicación de datos y objetos de base de datos, visite el siguiente sitio web de Microsoft:Para obtener más información sobre el modelo de mantenimiento incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897 Un modelo de servicio incremental disponible en el equipo de SQL Server para ofrecer revisiones para problemas detectados
Para obtener más información sobre el esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499 Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server
Para obtener más información acerca de la terminología de actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft