sp_addmergepublication (Transact-SQL)
Mis à jour : 12 décembre 2006
Crée une nouvelle publication de fusion. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données publiée.
Conventions de la syntaxe de Transact-SQL
Syntaxe
sp_addmergepublication [ @publication = ] 'publication'
[ , [ @description = ] 'description'
[ , [ @retention = ] retention ]
[ , [ @sync_mode = ] 'sync_mode' ]
[ , [ @allow_push = ] 'allow_push' ]
[ , [ @allow_pull = ] 'allow_pull' ]
[ , [ @allow_anonymous = ] 'allow_anonymous' ]
[ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
[ , [ @centralized_conflicts = ] 'centralized_conflicts' ]
[ , [ @dynamic_filters = ] 'dynamic_filters' ]
[ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ]
[ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ]
[ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ]
[ , [ @post_snapshot_script = ] 'post_snapshot_script' ]
[ , [ @compress_snapshot = ] 'compress_snapshot' ]
[ , [ @ftp_address = ] 'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ]
[ , [ @ftp_login = ] 'ftp_login' ]
[ , [ @ftp_password = ] 'ftp_password' ]
[ , [ @conflict_retention = ] conflict_retention ]
[ , [ @keep_partition_changes = ] 'keep_partition_changes' ]
[ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
[ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ]
[ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ]
[ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
[ , [ @max_concurrent_merge = ] maximum_concurrent_merge ]
[ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
[ , [ @use_partition_groups = ] 'use_partition_groups' ]
[ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
[ , [ @replicate_ddl = ] replicate_ddl ]
[ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ]
[ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ]
[ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
[ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
[ , [ @retention_period_unit = ] 'retention_period_unit' ]
[ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
[ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
[ , [ @conflict_logging = ] 'conflict_logging' ]
Arguments
- [ @publication=] 'publication'
Nom de la publication de fusion à créer. L'argument publication est de type sysname et n'a pas de valeur par défaut. Il ne doit pas correspondre au mot clé ALL. Le nom de la publication doit être unique dans la base de données.
- [ @description=] 'description'
Description de la publication. L'argument description est défini comme étant de type nvarchar(255), avec NULL comme valeur par défaut.
[ @retention=] retention
Période de rétention, en unités de période de rétention, pendant laquelle les modifications sont enregistrées pour la publication donnée. L'argument retention est de type int, avec la valeur 14 par défaut. Les unités de période de rétention sont définies par retention_period_unit. Si l'abonnement n'est pas synchronisé pendant la période de rétention et que les modifications en attente qu'il devait recevoir ont été supprimées par une opération de nettoyage sur le serveur de distribution, l'abonnement expire et doit être réinitialisé. La période de rétention maximum autorisable est le nombre de jours compris entre le 31 décembre 9999 et la date actuelle.Remarque : La période de rétention pour les publications de fusion bénéficie d'une période de grâce de 24 heures pour les besoins des abonnés se trouvant dans des fuseaux horaires différents. Si, par exemple, vous définissez une période de rétention d'un jour, la période de rétention réelle est de 48 heures.
[ @sync_mode=] 'sync_mode'
Mode de la synchronisation initiale des abonnés à la publication. L'argument sync_mode est de type nvarchar(10) et peut prendre une des valeurs ci-dessous.Valeur Description native (par défaut)
Produit une copie par bloc en mode natif de toutes les tables.
character
Produit une copie par bloc en mode caractère de toutes les tables. Nécessaire à la prise en charge d'Abonnés SQL Server 2005 Compact Edition et non-SQL Server.
- [ @allow_push=] 'allow_push'
Indique si des abonnements par envoi de données peuvent être créés pour une publication donnée. L'argument allow_push est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements par envoi de données dans la publication.
- [ @allow_pull=] 'allow_pull'
Indique si des abonnements par extraction de données peuvent être créés pour une publication donnée. L'argument allow_pull est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements par extraction de données dans la publication. Vous devez spécifier la valeur True pour prendre en charge les abonnés SQL Server 2005 Compact Edition.
- [ @allow_anonymous=] 'allow_anonymous'
Indique si des abonnements anonymes peuvent être créés pour une publication donnée. L'argument allow_anonymous est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements anonymes dans la publication. Vous devez spécifier la valeurTruepour prendre en charge les abonnés SQL Server 2005 Compact Edition**.
- [ @enabled_for_internet=] 'enabled_for_internet'
Indique si la publication est activée pour Internet et détermine si le protocole FTP peut être utilisé pour le transfert des fichiers de capture instantanée à un abonné. enabled_for_internet est de type nvarchar(5), avec FALSE comme valeur par défaut. Si l'argument a pour valeur true, les fichiers de synchronisation de la publication sont placés dans le répertoire C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. L'utilisateur doit créer le répertoire FTP. Si la valeur est false, la publication n'est pas activée pour l'accès Internet.
- [ @centralized_conflicts = ] 'centralized_conflicts'
Ce paramètre a été désapprouvé et n'est pris en charge que pour des raisons de compatibilité descendante des scripts. Utilisez conflict_logging pour spécifier l'emplacement où se trouvent les enregistrements de conflits.
[ @dynamic_filters =] 'dynamic_filters'
Active la publication de fusion pour utiliser le filtrage des lignes paramétrable. L'argument dynamic_filters est de type nvarchar(5), avec FALSE comme valeur par défaut.Remarque : Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL Server à déterminer automatiquement si le filtrage des lignes paramétrable est utilisé. Si vous spécifiez la valeur true pour dynamic_filters, vous devez définir un filtrage des lignes paramétrable pour l'article. Pour plus d'informations, consultez How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming).
- [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
Indique si les fichiers de capture instantanée sont stockés dans le dossier par défaut. L'argument snapshot_in_default_folder est de type nvarchar(5), avec TRUE comme valeur par défaut. Si la valeur est true, les fichiers de capture instantanée se trouvent dans le dossier par défaut. Si la valeur est false, les fichiers de capture instantanée sont stockés à l'emplacement secondaire spécifié par alternate_snapshot_folder. Les emplacements secondaires peuvent se trouver sur un autre serveur, un lecteur réseau ou un support amovible (tel qu'un CD-ROM ou des disques amovibles). Vous pouvez également enregistrer les fichiers de capture instantanée sur un site FTP, pour qu'ils soient récupérés ultérieurement par l'abonné. Notez que ce paramètre peut avoir la valeur true (vrai) et néanmoins avoir un emplacement spécifié par le paramètre alt_snapshot_folder. Cette combinaison indique que les fichiers de capture instantanée sont stockés dans les emplacements par défaut et secondaires.
- [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
Indique l'emplacement secondaire du dossier de captures instantanées. L'argument alternate_snapshot_folder est de type nvarchar(255), avec NULL comme valeur par défaut.
- [ @pre_snapshot_script = ] 'pre_snapshot_script'
Indique un pointeur à l'emplacement d'un fichier .sql. L'argument pre_snapshot_script est de type nvarchar(255), avec NULL comme valeur par défaut. L'Agent de fusion exécute le script de précapture instantanée avant tous les scripts d'objets répliqués, lors de l'application de la capture instantanée chez un abonné. Le script est exécuté dans le contexte de sécurité utilisé par l'Agent de fusion lors de la connexion à la base de données d'abonnement. Les scripts de précapture instantanée ne sont pas exécutés sur les abonnés SQL Server 2005 Compact Edition**.
- [ @post_snapshot_script = ] 'post_snapshot_script'
Indique un pointeur à l'emplacement d'un fichier .sql. L'argument post_snapshot_script est de type nvarchar(255), avec NULL comme valeur par défaut. L'Agent de fusion exécute le script de post-capture instantanée après que tous les autres scripts d'objets et données répliqués ont été appliqués lors d'une synchronisation initiale. Le script est exécuté dans le contexte de sécurité utilisé par l'Agent de fusion lors de la connexion à la base de données d'abonnement. Les scripts de post-capture instantanée ne sont pas exécutés sur les abonnés SQL Server 2005 Compact Edition**.
- [ @compress_snapshot = ] 'compress_snapshot'
Indique que la capture instantanée écrite à l'emplacement @alt_snapshot_folder doit être compressée au format Microsoft CAB. L'argument compress_snapshot est de type nvarchar(5), avec FALSE comme valeur par défaut. La valeur false indique que la capture instantanée ne sera pas compressée ; la valeur true indique que la capture instantanée sera compressée. Les fichiers de capture instantanée dépassant 2 Go ne peuvent pas être compressés. Les fichiers de capture instantanée compressés sont décompressés à l'emplacement d'exécution de l'Agent de fusion. Les abonnements par extraction de données sont généralement utilisés avec des captures instantanées compressées, afin que les fichiers soient décompressés chez l'abonné. La capture instantanée se trouvant dans le dossier par défaut ne peut pas être compressée. Vous devez spécifier la valeurfalsepour prendre en charge les abonnés SQL Server 2005 Compact Edition**.
- [ @ftp_address = ] 'ftp_address'
Adresse réseau du service FTP pour le serveur de distribution. ftp_address est de type sysname, avec NULL comme valeur par défaut. Indique l'emplacement à partir duquel l'Agent de fusion d'un abonné peut extraire les fichiers de capture instantanée de la publication. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir une valeur ftp_address différente. La publication doit prendre en charge la diffusion des captures instantanées à l'aide du protocole FTP.
- [ @ftp_port= ] ftp_port
Numéro de port du service FTP du distributeur. ftp_port est de type int, avec 21 comme valeur par défaut. Indique l'emplacement à partir duquel l'Agent de fusion d'un abonné peut extraire les fichiers de capture instantanée de la publication. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut détenir sa propre valeur ftp_port.
[ @ftp_subdirectory = ] 'ftp_subdirectory'
Indique l'emplacement à partir duquel l'Agent de fusion de l'abonné peut extraire les fichiers de capture instantanée si la publication prend en charge la propagation de captures instantanées par FTP. L'argument ftp_subdirectory est de type nvarchar(255), avec NULL comme valeur par défaut. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir sa propre valeur ftp_subdirctory ou, si une valeur NULL est spécifiée, n'être associée à aucun sous-répertoire.Lors de la prégénération de captures instantanées pour les publications avec des filtres paramétrés, la capture instantanée de données pour chaque partition d'abonné doit se trouver dans son propre dossier. La structure de répertoire pour les captures instantanées prégénérées à l'aide de FTP doit répondre aux conditions suivantes :
alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.
Remarque : Les valeurs en italique ci-dessus dépendent des détails de la publication et de la partition de l'abonné.
- [ @ftp_login = ] 'ftp_login'
Nom d'utilisateur utilisé pour la connexion au service FTP. L'argument ftp_login est de type sysname, avec « anonymous » comme valeur par défaut.
[ @ftp_password = ] 'ftp_password'
Mot de passe de l'utilisateur utilisé pour la connexion au service FTP. L'argument ftp_password est de type sysname, avec NULL comme valeur par défaut.Remarque relative à la sécurité : N'utilisez pas de mot de passe vide, mais un mot de passe fort.
- [ @conflict_retention = ] conflict_retention
Indique la période de rétention, en jours, pendant laquelle les conflits sont retenus. L'argument conflict_retention est de type int, avec 14 jours comme valeur par défaut avant que la ligne en conflit ne soit purgée de la table de conflits.
[ @keep_partition_changes = ] 'keep_partition_changes'
Indique si l'optimisation des modifications de partitions est activée lorsque les partitions précalculées ne peuvent pas être utilisées. keep_partition_changes est de type nvarchar(5), avec TRUE comme valeur par défaut. false signifie que les modifications de partitions ne sont pas optimisées, et que lorsque les partitions précalculées ne sont pas utilisées, les partitions envoyées à tous les abonnés seront vérifiées lorsque les données sont modifiées dans une partition. true signifie que les modifications de partitions sont optimisées et que seuls les abonnés dont des lignes se trouvent dans les partitions modifiées sont concernés. Lorsque vous utilisez les partitions précalculées, donnez à use_partition_groups la valeur true et à keep_partition_changes la valeur false. Pour plus d'informations, consultez Optimisation des performances des filtres paramétrés avec des partitions précalculées.Remarque : Si vous spécifiez une valeur true pour keep_partition_changes, spécifiez une valeur de 1 pour le paramètre Agent de capture instantanée -MaxNetworkOptimization. Pour plus d'informations sur ce paramètre, consultez Replication Snapshot Agent. Pour plus d'informations sur la spécification des paramètres d'agent, consultez Administration des agents de réplication.
- [ @allow_subscription_copy= ] 'allow_subscription_copy'
Active ou désactive la possibilité de copier les bases de données d'abonnement qui sont abonnées à la publication. L'argument allow_subscription_copy est de type nvarchar(5), avec FALSE comme valeur par défaut. La taille de la base de données d'abonnement doit être inférieure à 2 gigaoctets (Go).
- [ @allow_synctoalternate = ] 'allow_synctoalternate'
Active un partenaire de synchronisation différent pour se synchroniser avec le serveur de publication. L'argument allow_synctoalternate est de type nvarchar(5), avec FALSE comme valeur par défaut. Les partenaires de synchronisation de remplacement ne sont pas pris en charge pour les Abonnés SQL Server 2005 Compact Edition.
[ @validate_subscriber_info = ] 'validate_subscriber_info'
Répertorie les fonctions utilisées pour définir une partition d'abonné des données publiées lorsque le filtrage des lignes paramétrable est utilisé. L'argument validate_subscriber_info est de type nvarchar(500), avec NULL comme valeur par défaut. Ces informations sont utilisées par l'Agent de fusion pour valider la partition de l'abonné. Par exemple, si SUSER_SNAME (Transact-SQL) est utilisé dans le filtrage des lignes paramétrable, le paramètre doit être@validate_subscriber_info=N'SUSER_SNAME()'
.Remarque : Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL Server à déterminer automatiquement le critère de filtrage.
- [ @add_to_active_directory = ] 'add_to_active_directory'
Ce paramètre a été désapprouvé et n'est pris en charge que pour des raisons de compatibilité descendante des scripts. Vous ne pouvez plus ajouter d'informations de publication à Microsoft Active Directory.
- [ @max_concurrent_merge = ] maximum_concurrent_merge
Nombre maximal de processus de fusion simultanés. maximum_concurrent_merge est int avec 0 comme valeur par défaut. La valeur 0 pour cette propriété indique la possibilité d'exécuter à tout moment un nombre illimité de processus de fusion simultanés. Cette propriété permet de définir un nombre maximal de processus de fusion simultanés exécutables sur une publication de fusion à un moment donné. Si le nombre de processus de fusion planifiés en même temps dépasse le nombre maximal autorisé à l'exécution, les travaux en trop sont placés dans une file d'attente jusqu'à l'achèvement d'un processus de fusion en cours.
- [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
Nombre maximal de sessions de l'Agent de capture instantanée qui peuvent être exécutées simultanément pour générer des captures instantanées de données filtrées pour les partitions d'abonnés. maximum_concurrent_dynamic_snapshots est de type int avec 0 comme valeur par défaut. La valeur 0 pour cette propriété indique que le nombre de sessions simultanées de l'Agent de capture instantanée est illimité. Si, au même moment, le nombre de processus de capture instantanée planifiés dépasse le nombre maximal autorisé, les travaux en excès sont placés dans une file d'attente jusqu'à achèvement d'un processus d'instantané en cours.
[ @use_partition_groups= ] 'use_partition_groups'
Spécifie que les partitions précalculées doivent être utilisées pour optimiser le processus de synchronisation. use_partition_groups est de type nvarchar(5) et peut prendre l'une des valeurs suivantes :Valeur Description true
La publication utilise les partitions précalculées.
false
La publication n'utilise pas les partitions précalculées.
NULL (valeur par défaut)
Le système détermine la stratégie de partitionnement.
Les partitions précalculées sont utilisées par défaut. Pour éviter l'utilisation des partitions précalculées, use_partition_groups doit avoir la valeur false. Lorsqu'il a la valeur NULL, le système décide si les partitions précalculées peuvent être utilisées. Si les partitions précalculées ne peuvent pas être utilisées, cette valeur devient alors false sans générer d'erreur. Dans ce type de cas, keep_partition_changes peut avoir la valeur true pour fournir une certaine optimisation. Pour plus d'informations, consultez Filtres de lignes paramétrés et Optimisation des performances des filtres paramétrés avec des partitions précalculées.
[ @publication_compatibility_level= ] backward_comp_level
Indique la compatibilité descendante de la publication. backward_comp_level est de type nvarchar(6) et peut prendre l'une des valeurs suivantes :Valeur Version 70RTM
Microsoft SQL Server 7.0
70SP1
SQL Server 7.0 Service Pack 1
70SP2
SQL Server 7.0 Service Pack 2
70SP3
SQL Server 7.0 Service Pack 3
70SP4
SQL Server 7.0 Service Pack 4
80RTM
Microsoft SQL Server 2000
80SP1
SQL Server 2000 Service Pack 1
80SP3 (par défaut)
SQL Server 2000 Service Pack 3
90RTM
Microsoft SQL Server 2005
- [ @replicate_ddl= ] replicate_ddl
Indique si la réplication des schémas est prise en charge par la publication. replicate_ddl est de type int, avec 1 comme valeur par défaut. 1 indique que les instructions DDL exécutées sur le serveur de publication sont répliquées et 0 indique que les instructions DDL ne sont pas répliquées. Pour plus d'informations, consultez Modification du schéma dans les bases de données de publication.
- [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
Indique si les abonnés de cette publication peuvent initier le processus de capture instantanée pour générer la capture instantanée filtrée pour leur partition de données. allow_subscriber_initiated_snapshot est de type nvarchar(5), avec FALSE comme valeur par défaut. true indique que les abonnés peuvent initier le processus de capture instantanée.
- [ @allow_web_synchronization = ] 'allow_web_synchronization'
Indique si la publication est activée pour la synchronisation Web. allow_web_synchronization est de type nvarchar(5), avec FALSE comme valeur par défaut. true indique que les abonnements à cette publication peuvent être synchronisés par HTTPS. Pour plus d'informations, consultez Synchronisation Web pour la réplication de fusion. Vous devez spécifier la valeurTruepour prendre en charge les abonnés SQL Server 2005 Compact Edition**.
- [ @web_synchronization_url= ] 'web_synchronization_url'
Indique la valeur par défaut de l'URL Internet utilisée pour la synchronisation Web. L'argument web_synchronization_url est de type nvarchar(500), avec NULL comme valeur par défaut. Définit l'URL Internet par défaut si aucune URL n'a été explicitement définie lorsque sp_addmergepullsubscription_agent est exécuté.
[ @allow_partition_realignment = ] 'allow_partition_realignment']
Détermine si des suppressions sont envoyées à l'abonné lorsqu'une modification de la ligne sur le serveur de publication a entraîné la modification de la partition. allow_partition_realignment est de type nvarchar(5), avec TRUE comme valeur par défaut. true envoie des suppressions à l'abonné pour refléter les résultats d'une modification de partition en supprimant les données qui ne font plus partie de la partition de l'abonné. false conserve les données de l'ancienne partition sur l'abonné et les modifications apportées à ces données sur le serveur de publication ne seront pas répliquées sur l'abonné, mais les modifications apportées sur l'abonné seront répliquées sur le serveur de publication. Donner à allow_partition_realignment la valeur false permet de conserver les données d'une partition ancienne dans un abonnement lorsque ces données doivent être accessibles pour des raisons d'historique.Remarque : Les données conservées sur l'abonné grâce à la définition de allow_partition_realignment avec la valeur false doivent être traitées comme si elles étaient en lecture seule. Cependant, cela n'est pas appliqué par le système de réplication.
[ @retention_period_unit= ] 'retention_period_unit'
Spécifie les unités pour la période de rétention définie par retention. retention_period_unit est de type nvarchar(10) et peut prendre l'une des valeurs ci-après.Valeur Version day (par défaut)
La période de rétention est spécifiée en jours.
week
La période de rétention est spécifiée en semaines.
month
La période de rétention est spécifiée en mois.
year
La période de rétention est spécifiée en années.
- [ @generation_leveling_threshold = ] generation_leveling_threshold
Indique le nombre de modifications contenues dans une génération. Une génération est une collection de modifications remises à un serveur de publication ou à un Abonné. generation_leveling_threshold est de type int, avec une valeur par défaut de 1 000. Pour plus d'informations, consultez Comment la réplication de fusion effectue le suivi et l'énumération des modifications.
[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
Spécifie si les modifications sont téléchargées à partir de l'abonné avant une réinitialisation automatique requise par une modification dans la publication, où la valeur 1 a été spécifiée pour @force_reinit_subscription. automatic_reinitialization_policy est de type bit, avec 0 comme valeur par défaut. 1 signifie que les modifications sont téléchargées à partir de l'abonné avant une réinitialisation automatique.Important : Si vous ajoutez, supprimez ou modifiez un filtre paramétré, les modifications en attente chez l'abonné ne peuvent pas être téléchargées vers le serveur de publication pendant la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.
[ @conflict_logging = ] 'conflict_logging'
Indique l'emplacement de stockage des enregistrements de conflits. L'argument conflict_logging est de type nvarchar(15), et peut prendre l'une des valeurs suivantes :Valeur Description publisher
Les enregistrements de conflits sont stockés sur le serveur de publication.
subscriber
Les enregistrements de conflits sont stockés sur l'abonné qui a causé le conflit. Non pris en charge pour les abonnés SQL Server 2005 Compact Edition.
both
Les enregistrements de conflits sont stockés sur le serveur de publication et sur l'abonné.
NULL (valeur par défaut)
La réplication donne automatiquement à conflict_logging la valeur both lorsque la valeur backward_comp_level est 90RTM, sinon elle lui donne la valeur publisher.
Notes
sp_addmergepublication est utilisée dans la réplication de fusion.
Les objets de publication figurant dans l'annuaire Active Directory ne peuvent être affichés à l'aide du paramètre @add_to_active_directory que si l'objet SQL Server a déjà été créé dans Active Directory.
Si plusieurs publications existantes publient le même objet de base de données, seules les publications pour lesquelles replicate_ddl a la valeur 1 répliqueront les instructions ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION et ALTER TRIGGER DDL. Cependant, une instruction ALTER TABLE DROP COLUMN DDL sera répliquée par toutes les publications publiant la colonne supprimée.
Pour les abonnés SQL Server 2005 Compact Edition, la valeur de alternate_snapshot_folder n'est utilisée que lorsque la valeur de snapshot_in_default_folder est false.
Lorsque la réplication DDL est activée (replicate_ddl**=1**) pour une publication, sp_changemergepublication doit d'abord être exécuté pour donner à replicate_ddl la valeur 0 pour pouvoir apporter à la publication des modifications DDL non répliquées. Après l'émission des instructions DDL non répliquées, sp_changemergepublication peut être exécuté de nouveau pour réactiver la réplication DDL.
Autorisations
Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter la procédure sp_addmergepublication.
Valeurs des codes renvoyés
0 (succès) ou 1 (échec)
Exemple
-- To avoid storing the login and password in the script file, the value
-- is passed into SQLCMD as a scripting variable. For information about
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".
--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @login = $(Login);
SET @password = $(Password);
-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'merge publish',
@value = N'true'
-- Create a new merge publication, explicitly setting the defaults.
USE [AdventureWorks]
EXEC sp_addmergepublication
-- These parameters are optional.
@publication = @publication,
-- optional parameters
@description = N'Merge publication of AdventureWorks.',
@publication_compatibility_level = N'90RTM';
-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
GO
Voir aussi
Référence
sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)
Autres ressources
How to: Create a Publication (Replication Transact-SQL Programming)
Publication de données et d'objets de base de données
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
12 décembre 2006 |
|