Sintomi
Supponiamo che tu usi la replica transazionale in Microsoft SQL Server 2008 ed esiste una query di aggiornamento in esecuzione nella pubblicazione. Quando si esegue l'aggiornamento di SQL Server a SQL Server 2012 o SQL Server 2014 e la query di aggiornamento non viene distribuita prima dell'aggiornamento, l'agente di lettura log potrebbe non riuscire con l'errore seguente:
<Date> <Time> Publisher: {Call sp_replcmds (500, 0, 0,, 0, 500000)}<data> <ora> stato: 0, codice: 20011, testo: "Impossibile eseguire il processo" sp_replcmds "in"< nome di Publisher>".".<Date> <Time> Il processo non può eseguire "sp_replcmds" in "<nome di Publisher>".<Date> <Time> Stato dell'agente REPL: 6<data> <ora> stato: 0, codice: 542, testo:' è stato rilevato un valore DateTime non valido. Il valore supera l'anno 9999 .'.<Date> <Time> Stato: 0, codice: 3621, testo:' l'istruzione è stata terminata .'.<Date> <Time> Stato: 0, codice: 22037, testo: "Impossibile eseguire il processo" sp_replcmds "in"<nome di Publisher>".".
Anche se il problema non è stato eseguito, i record del log aggiornati per le istruzioni Update possono comunque essere fraintesi dall'agente di lettura log e l'errore seguente può presentarsi nell'agente di distribuzione:
515 non può inserire il valore NULL nella colonna "<nome di colonna>", tabella "<nome di tabella>"; la colonna non consente valori null. L'aggiornamento non riesce.
Nota
-
I diversi tipi di dati e vincoli possono causare un errore diverso da segnalare e questo problema può anche causare la non convergenza.
-
Il problema si verifica quando si esegue l'aggiornamento da SQL Server 2008 o SQL Server 2008 R2 a SQL Server 2012 o SQL Server 2014.
Risoluzione
Se l'errore "515 non può inserire il valore NULL nella colonna"<nome di colonna>", tabella"<nome di tabella>"; la colonna non consente valori null. Errore di aggiornamento "in agente di distribuzione si è verificato un reinizializzazione della replica. Questo messaggio di aggiornamento rapido non risolve questo errore. Per evitare questo errore, è consigliabile disabilitare l'agente di lettura log prima dell'aggiornamento, quindi eseguire l'aggiornamento fino a questa correzione e quindi riabilitare l'agente di lettura log. il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 2 per SQL Server 2012 SP2 /en-us/help/2983175
Aggiornamento cumulativo 3 per SQL Server 2014 /en-us/help/2984923
Aggiornamento cumulativo 11 per SQL Server 2012 SP1 /en-us/help/2975396
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".