Symptômes
Supposons que vous utilisez la réplication transactionnelle dans Microsoft SQL Server 2008 et qu’une requête de mise à jour s’exécute sur la publication. Lorsque vous mettez à niveau SQL Server vers SQL Server 2012 ou SQL Server 2014 et que la requête de mise à jour n’est pas distribuée avant la mise à niveau, l’agent de lecture du journal peut échouer avec l’erreur suivante :
Remarque
<Date><Heure> Éditeur : {call sp_replcmds (500, 0, 0, , 0, 500000)}
<Date><Time> Status : 0, code : 20011, text : 'The process could not execute 'sp_replcmds' on '<Publisher Name>'.
<Date><Heure> Le processus n’a pas pu exécuter « sp_replcmds » sur « <Nom de l’éditeur> ».
<Date><et heure> État de l’agent de réplication : 6
<Date><Time> Status : 0, code : 542, text : 'Une valeur DateHeure non valide a été détectée. La valeur dépasse l’année 9999.
<Date><Time> Status : 0, code : 3621, text : 'The statement has been terminated.'.
<Date><Time> Status : 0, code : 22037, text : 'The process could not execute 'sp_replcmds' on '<Publisher Name>'.'.
Même si ce problème ne s’est pas produit, les enregistrements de journal mis à niveau pour les instructions de mise à jour peuvent toujours être mal interprétés par l’agent de lecture du journal et l’erreur suivante peut se produire dans l’agent de distribution :
Remarque
515 Impossible d’insérer la valeur NULL dans la colonne « <Nom de colonne », la table « Nom>>de la table » ; la colonne n’autorise< pas les valeurs NULL. Échec de UPDATE.
Remarque
- Différents types de données et contraintes peuvent entraîner le signalement d’erreurs différentes, et ce problème peut même entraîner une non-convergence.
- Ce problème se produit lorsque vous effectuez une mise à niveau de SQL Server 2008 ou de SQL Server 2008 R2 vers SQL Server 2012 ou SQL Server 2014.
Résolution
Si l’erreur « 515 Impossible d’insérer la valeur NULL dans la colonne « <Nom de colonne », la table « Nom> de la table » ;>< la colonne n’autorise pas les valeurs NULL. UPDATE échoue » dans l’agent de distribution s’est produit, vous devez réinitialiser votre réplication. Ce correctif logiciel ne corrige pas cette erreur. Pour éviter cette erreur, vous devez désactiver l’agent de lecture du journal avant la mise à niveau, puis mettre à niveau jusqu’à ce correctif, puis réactiver l’agent de lecture du journal.
Le problème a été résolu pour la première fois dans la mise à jour cumulative suivante de SQL Server.
Mise à jour cumulative 2 pour SQL Server 2012 SP2 /en-us/help/2983175
Mise à jour cumulative 3 pour SQL Server 2014 /en-us/help/2984923
Mise à jour cumulative 11 pour SQL Server 2012 SP1 /en-us/help/2975396
À propos des mises à jour cumulatives pour SQL Server
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
- Dernière mise à jour cumulative pour SQL Server 2012 SP2
- Dernière mise à jour cumulative pour SQL Server 2014
- Dernière mise à jour cumulative pour SQL Server 2012 SP1
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».