PRB : Bulk Operations en résultat de tables dans les lignes non répliquée dans la réplication de fusion

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 275680
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Lorsque vous utilisez en bloc opérations telles que l'utilitaire de ligne de commande bcp, instructions BULK INSERT de Transact-SQL, l'API de copie en bloc ou SQL Server Transformation de données (DTS), pour charger des données dans les tables faisant partie de la réplication de fusion, à moins que certaines mesures soient prises, les lignes insérées ne sont pas répliqués vers d'autres serveurs.
Cause
Car ces opérations en bloc sont optimisées pour les charges rapides et efficaces de grandes quantités de données, par défaut qu'ils ne déclenchent pas déclencheurs sur la table qui reçoit les données insérées. Étant donné que la réplication de fusion nécessite l'utilisation des triggers système sur des tables participants pour suivre les modifications apportées entre l'éditeur et abonné, si les déclencheurs ne sont pas déclenchés, réplication de fusion ne peut pas répliquer les lignes.
Contournement
La solution de contournement pour ce problème dépend de la méthode que vous utilisez pour effectuer la copie en bloc des données et la version de SQL Server que vous utilisez :

  • Si vous utilisez SQL Server DTS d'insérer des lignes, désactivez l'option de Charge utiliser Fast (activée par défaut) sous l'onglet Options de la feuille de propriétés de Tâche de transformation de données. Toutefois, notez que la tâche Insertion en bloc SQL Server 2000 n'expose pas la possibilité de modifier l'option Utiliser Fast charger, est uniquement la tâche de transformation des données.

  • Si vous utilisez l'utilitaire de ligne de commande bcp ou l'instruction Transact-SQL BULK INSERT dans SQL Server 2000, vous devez utiliser l'option FIRE_TRIGGERS. Notez que l'option FIRE_TRIGGERS n'est pas disponible dans SQL Server version 7.0. Dans la mesure où le FIRE_TRIGGERS option pour les opérations en bloc dans SQL Server version 7.0 n'est pas disponible, toute opération en bloc en dehors de DTS entraîne lignes ne pas répliqués vers les abonnés.

  • Lorsque vous utilisez l'API de copie en bloc par le biais d'ODBC, vous devez activer l'option FIRE_TRIGGERS sur la poignée de la connexion appropriée à l'aide d'un appel à la fonction bcp_control().

  • Lorsque vous utilisez l'interface IRowsetFastLoad OLE DB, spécifiez l'option FIRE_TRIGGERS pour la propriété SSPROP_FASTLOADOPTIONS sur l'interface IOpenRowset.
Plus d'informations
Insertion, suppression et commandes de mise à jour doivent être répliqués dans une publication de réplication de fusion sont suivies par l'agent de fusion lorsqu'ils sont ajoutés aux tables MSmerge_contents et MSmerge_tombstone. Les lignes sont ajoutées à ces tables par le biais de triggers système créées sur les tables au cours de l'installation de réplication.

Opérations en bloc ne pas vérifier les contraintes de table ou de déclenche les déclencheurs au niveau de la table de destination. Par conséquent, les déclencheurs de système de réplication de fusion ne sont pas déclenchés. Dans la mesure où ces déclencheurs ne sont pas déclenchés, les lignes qui sont «touché» par insertion en bloc opérations ne sont pas ajoutées à la table MSmerge_contents et par conséquent ne sont pas répliquées aux abonnés.

RÉFÉRENCES

Pour plus d'informations sur les effets du déclencheur de l'exécution aux tables de destination lorsque l'option FIRE_TRIGGERS est spécifiée, consultez la rubrique «Utilisation de bcp et BULK INSERT» dans en ligne de SQL Server 2000.
déclencher la copie en bloc ODBC OLE DB

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 275680 - Dernière mise à jour : 01/16/2015 20:51:08 - Révision : 3.2

Microsoft SQL Server 2000 Standard, Microsoft SQL Server 7.0 Standard

  • kbnosurvey kbarchive kbmt kbprb KB275680 KbMtfr
Commentaires