L’utilisation de ROWGUIDCOL dans la définition de filtres n’est pas prise en charge dans la réplication de fusion
Cet article explique que l’utilisation rowguidcol
de dans la définition de filtre n’est pas prise en charge dans la réplication de fusion.
Version du produit d’origine : SQL Server 2008 entreprise, SQL Server 2008 R2 entreprise, SQL Server 2005 Enterprise Edition
Numéro de la base de connaissances initiale : 2646528
Synthèse
Lors de la conception d’une topologie de réplication, un filtre ne doit pas inclure le rowguidcol
et uniqueidentitifier
utilisé par la réplication pour identifier les lignes. Par défaut, SQL Server ajoute cette colonne lors de la configuration de la réplication de fusion sur une table.
Plus d’informations
Pour effectuer le suivi des modifications, la réplication de fusion (et la réplication transactionnelle avec des abonnements mis à jour en file d’attente) doit pouvoir identifier chaque ligne de chaque table publiée de manière unique.
Pour ce faire, la réplication de fusion ajoute la colonne rowguid à chaque table, sauf si la table comporte déjà une colonne de type de données uniqueidentifier
avec le ROWGUIDCOL
jeu de propriétés (auquel cas cette colonne est utilisée).
Si la table est supprimée de la composition, la colonne ROWGUID est supprimée ; Si une colonne existante a été utilisée pour le suivi, la colonne n’est pas supprimée. Un filtre ne doit pas inclure le rowguidcol
utilisé par la réplication pour identifier les lignes. Lors de la configuration de la réplication, la newsequentialid()
fonction est fournie comme valeur par défaut pour la colonne rowguid ou l’utilisateur avec rowguidcol
.
Si nécessaire, les clients peuvent fournir un GUID pour chaque ligne, même si la valeur 00000000-0000-0000-0000-000000000000 ne doit pas être utilisée.