KB2384766 - CORRECCIÓN: la propiedad ANSI_NULLS de una vista indexada cambia a FALSO después de que la vista indexada se replique en la base de datos de suscripciones en SQL Server 2008 o en SQL Server 2008 R2

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

Microsoft distribuye las correcciones de Microsoft SQL Server 2008 y Microsoft SQL Server 2008 R2 como un archivo descargable. Dado que las correcciones son acumulativas, cada nueva versión contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de corrección de SQL Server 2008 o SQL Server 2008 R2.

Síntomas

Tenga en cuenta el siguiente escenario:

  • Puede crear una publicación transaccional en Microsoft SQL Server 2008 o en Microsoft SQL Server 2008 R2.

  • Tiene una vista indexada. Establezca la propiedad ANSI_NULLS de la vista de índice en VERDADERO.

  • Agregue la vista indexada a la publicación como un artículo. Establezca el tipo de artículo en "vista indexada basada en logbased".

    Nota Puede usar el código siguiente para especificar el tipo de vista indexada. Haga esto cuando ejecute el sp_addarticle procedimiento almacenado para agregar el artículo de vista indexada a la publicación.

    @type = N'indexed view logbased'
    
    
  • Cree una suscripción para la publicación transacción.

  • La vista indexada se replica en la base de datos de suscripción.

En este escenario, la propiedad ANSI_NULLS de la vista indexada cambia a FALSO en la base de datos de suscripciones.

Notas

  • Este problema suele producirse cuando la propiedad ANSI_NULLS de las tablas que participan en la estructura de expresiones SQL de la vista índice se establece en FALSE.
  • Este problema también existe en Microsoft SQL Server 2005.

      

Causa

Este problema se produce porque las tablas, vistas, funciones y procedimientos almacenados de 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 relacionadas con la estructura de expresiones SQL de la vista indexada se establece en FALSE, la propiedad de ANSI_NULLS predeterminada para la vista indexada sería FALSE.

Resolución

Información sobre la actualización acumulativa

SQL Server 2008 Service Pack 1

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 sobre 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 1Note Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la corrección más reciente que contiene esta revisión. Para 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 publicaron después de SQL Server Service Pack 1 de 2008 se publicaron con revisiones de Microsoft SQL Server 2008 se crean para Service Pack de SQL Server específicos. 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, todas las revisiones que se proporcionan en un SQL Server Service Pack se incluyen en el siguiente SQL Server Service Pack.

SQL Server 2008 Service Pack 2

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 sobre 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 2Note Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la corrección de SQL Server 2008 anterior. Le recomendamos que considere la posibilidad de aplicar la corrección más reciente que contiene esta revisión. Para 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 publicaron después de SQL Server 2008 Service Pack 2 se publicó

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 correcciones de seguridad que se incluyeron con la versión de corrección de SQL Server 2008 R2 anterior. Le recomendamos que considere la posibilidad de aplicar la corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

981356 Compilaciones de SQL Server 2008 R2 que se publicaron después de SQL Server 2008 R2

Solución alternativa

Para solucionar este problema, actualice la caché de metadatos después de crear la vista indexada y antes de ejecutar sp_addarticle para agregar el artículo de la vista indexada.

Notas Para actualizar la caché de metadatos, use uno de los siguientes métodos:

  • 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 en línea.

      

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Para obtener más información sobre el procedimiento almacenado sp_addarticle, visite el siguiente sitio web de Microsoft:

Introducción al procedimiento almacenado sp_addarticle (Transact-SQL) 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:

Datos de publicación y objetos de base de datos 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 está disponible en el equipo de SQL Server para entregar revisiones para problemas detectados

Para obtener más información sobre el esquema de nomenclatura para 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 sobre la terminología de actualización 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 que se usa para describir las actualizaciones de software de Microsoft