KB4048967 - FIX: Non è possibile abilitare o disabilitare l'acquisizione dei dati delle modifiche per un database dopo averlo collegato in SQL Server 2014, 2016 o 2017

Si applica 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)

Sintomi

Si supponga di collegare un database abilitato per Change Data Capture in Microsoft SQL Server 2014, 2016 o 2017. Se ci sono transazioni da rifare durante l'avvio del database, Change Data Capture potrebbe entrare in uno stato incoerente, ovvero Change Data Capture è in uno stato disabilitato, ma gli oggetti Change Data Capture sono ancora presenti. Inoltre, possono verificarsi le situazioni seguenti:

  • Quando si tenta di disabilitare Change Data Capture per il database utilizzando la stored procedure sp_cdc_disable_db , viene visualizzato il messaggio di errore seguente:

    Nota

    Il database DatabaseName non è abilitato per Change Data Trascrivi. Assicurarsi che sia impostato il contesto del database corretto e ripetere l'operazione. Per creare report sui database abilitati per la Trascrivi Change Data, eseguire una query sulla colonna is_cdc_enabled nella vista del catalogo sys.databases.

  • Quando si tenta di abilitare Change Data Capture per il database usando la stored procedure sp_cdc_enable_db , viene visualizzato il messaggio di errore seguente:

    Nota

    Messaggio 22906, livello 16, stato 1, procedura sp_cdc_enable_db_internal, riga LineNumber

    Impossibile abilitare il database DatabaseName per l'Trascrivi Change Data perché nel database corrente esiste già un utente del database denominato UserName o uno schema denominato SchemaName. Questi oggetti sono necessari esclusivamente per Change Data Trascrivi. Eliminare o rinominare l'utente o lo schema e ripetere l'operazione.

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

Aggiornamento cumulativo 8 per SQL Server 2016 SP1

Aggiornamento cumulativo 4 per SQL Server 2017

Aggiornamento cumulativo 9 per SQL Server 2014 SP2

Informazioni sugli aggiornamenti cumulativi per SQL Server:

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:

Aggiornamento cumulativo più recente per SQL Server 2016

Aggiornamento cumulativo più recente per SQL Server 2017

Aggiornamento cumulativo più recente per SQL Server 2014

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.