KB4048967: CORRECCIÓN: no se puede habilitar o deshabilitar la captura de datos modificados para una base de datos después de adjuntarla en SQL Server 2014, 2016 o 2017

Se aplica a
SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Síntomas

Suponga que adjunta una base de datos habilitada para la captura de datos de cambios en Microsoft SQL Server 2014, 2016 o 2017. Si hay transacciones que volver a realizar durante el inicio de la base de datos, la captura de datos de cambio puede tener un estado incoherente, es decir, cambiar la captura de datos está en estado deshabilitado, pero el cambio en los objetos de captura de datos sigue existiendo. Además, puede encontrarse con las siguientes situaciones:

  • Al intentar deshabilitar la captura de datos modificados para esta base de datos mediante el procedimiento almacenado sp_cdc_disable_db , recibe el siguiente mensaje de error:

    Nota

    DatabaseName no está habilitado para la Captura Cambiar datos. Asegúrese de que se establece el contexto de base de datos correcto y vuelva a intentar la operación. Para informar sobre las bases de datos habilitadas para la Captura Cambiar datos, consulte la columna is_cdc_enabled en la vista del catálogo sys.databases.

  • Al intentar habilitar la captura de datos modificados para esta base de datos mediante el procedimiento almacenado sp_cdc_enable_db , recibe el siguiente mensaje de error:

    Nota

    Msg 22906, Level 16, State 1, Procedure sp_cdc_enable_db_internal, LineNumber

    La base de datos DatabaseName no se puede habilitar para cambiar datos Captura porque ya existe un usuario de base de datos denominado UserName o un esquema denominado SchemaName en la base de datos actual. La Captura Cambiar datos requiere estos objetos exclusivamente. Coloque o cambie el nombre del usuario o esquema y vuelva a intentar la operación.

Resolución

Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:

Actualización acumulativa 8 para SQL Server 2016 SP1

Actualización acumulativa 4 de SQL Server 2017

Actualización acumulativa 9 para SQL Server 2014 SP2

Acerca de las actualizaciones acumulativas para SQL Server:

Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:

Actualización acumulativa más reciente de SQL Server 2016

Actualización acumulativa más reciente de SQL Server 2017

Actualización acumulativa más reciente de SQL Server 2014

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

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.