Les agents de capture instantanée ou de lecture du journal échouent lorsque la table de destination est vide dans SQL Server

Symptômes

Dans une réplication transactionnelle dans Microsoft SQL Server, un article dans une requête SQL est une chaîne vide dans une table de destination (@destination_table = N "") dans une instruction Transact-SQL. Dans ce cas, vous pouvez recevoir des messages d’erreur suivants dans les emplacements spécifiés :

  • L’agent de capture instantanée :

    Valeur ne peut pas être null. Nom de paramètre : strNomObjet


  • Dans l’agent de lecture du journal :

    Le processus n’a pas pu exécuter 'sp_replcmds' sur 'Serveur'


  • Dans le fichier journal des erreurs :

    L’Assertion SQL Server : Fichier : < replrowset.cpp >, ligne = 2853 Échec de l’Assertion = 'dwColLen'.


    Remarque  Cette erreur est éventuellement liée à un délai d'attente. Si l’erreur persiste une fois que vous exécutez à nouveau l’instruction, utilisez DBCC CHECKDB pour vérifier la base de données pour l’intégrité structurelle. Ou, redémarrez le serveur pour vous assurer que les structures de données en mémoire ne sont pas endommagés. Un fichier de vidage est créé dans le dossier \Log qui contient les détails de l’assertion.


Remarque Les deuxième et la troisième les erreurs sont déclenchées uniquement si la composition a activé l’option de synchronisation immédiate .

Cause

Ce problème se produit car une chaîne vide n’est pas un nom de table de destination valide.

Solution de contournement

Pour contourner ce problème, définissez un nom de table de destination valide ou supprimez le nom de la table de destination non valide.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×