S’applique àSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) 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)

Symptômes

Supposez que vous créez une publication transactionnelle à l’aide de la procédure stockée sp_addpublication dans SQL Server 2014 ou 2016 et que vous définissez la propriété @allow_drop sur true. Lorsque vous déposez une table publiée dans la composition et supprimez manuellement l’article obsolète de la composition, vous pouvez recevoir un message d’erreur qui ressemble à ce qui suit :

Le serveur distant "(null)" n’existe pas.

Par exemple, ce problème se produit dans le scénario suivant :

  • Vous publiez une table dans une composition transactionnelle, puis vous définissez la propriété @allow_drop sur true.

  • Vous supprimez la table publiée.

  • Pour que l’agent de lecture du journal traite les enregistrements liés à la commande drop table, vous devez nettoyer l’article obsolète en utilisant l’une des procédures stockées suivantes :

    • sp_MSdropobsoletearticle

    • sp_droparticle

    • sp_droppublication

Dans ce cas, les messages d’erreur suivants sont enregistrés dans un journal détaillé :

État : 0, code : 1007, texte : 'le processus n’a pas pu exécuter « sp_MSadd_replcmds » sur «SQL_SERVER_INSTANCE». Le processus n’a pas pu exécuter « sp_MSadd_replcmds » sur «SQL_SERVER_INSTANCE». État de l’agent REPL : 6Status : 0, code : 1007, texte : 'le serveur distant "(null)" n’existe pas ou n’a pas été désigné comme éditeur valide ou vous ne disposez pas des autorisations nécessaires pour afficher les éditeurs disponibles. '. État : 4, code : 6001, texte : « le thread d’arrière-plan de la «charge de commande » est en cours de fermeture.». État : 0, code : 22020, texte : 'les lots n’ont pas été validés sur le distributeur. '. État : 0, code : 22037, texte : « la dernière étape n’a pas pu enregistrer un message ! ».

Remarque La prise en charge de drop table (DDL DROP TABLE) a été ajoutée à SQL Server 2014 Service Pack 2. Pour plus d’informations sur la prise en charge de drop table, consultez l’article suivant de la base de connaissances Microsoft :

3170123 Prend en charge DROP TABLE DDL pour les articles inclus dans la réplication transactionnelle dans SQL Server 2014

Résolution

Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

Mise à jour cumulative 1 pour SQL server 2014 Service Pack 2- mise à jour cumulative 2 pour SQL Server 2016

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et 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 2014 dernière mise à jour cumulative pour SQL Server 2016

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références

Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.