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.