sp_addmergepublication (Transact-SQL)

Actualizado: 12 de diciembre de 2006

Crea una publicación de mezcla nueva. Este procedimiento almacenado se ejecuta en el publicador de la base de datos que se publica.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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' ]

Argumentos

  • [ **@publication=**\] 'publication'
    Es el nombre de la publicación de mezcla que se va a crear. publication es de tipo sysname, no tiene valor predeterminado y no debe ser la palabra clave ALL. El nombre de la publicación debe ser único en la base de datos.
  • [ **@description=**\] 'description'
    Es la descripción de la publicación. description es de tipo nvarchar(255) y su valor predeterminado es NULL.
  • [ **@retention=**\] retention
    Es el período de retención, en unidades de período de retención, durante el cual se guardarán los cambios de la publicación especificada. retention es de tipo int y su valor predeterminado son 14 unidades. Las unidades del período de retención se definen en retention_period_unit. Si la suscripción no está sincronizada con el período de retención y los cambios pendientes que hubiera recibido se han quitado mediante una operación de limpieza en el distribuidor, la suscripción caduca y debe reinicializarse. El período de retención máximo permitido es el número de días comprendido entre el 31 de diciembre de 9999 y la fecha actual.

    [!NOTA] El período de retención para las publicaciones de mezcla tiene un plazo de gracia de 24 horas para adaptarse a los suscriptores de las diferentes zonas horarias. Si, por ejemplo, se establece un período de retención de un día, el período de retención real será de 48 horas.

  • [ **@sync\_mode=**\] 'sync_mode'
    Es el modo de sincronización inicial de los suscriptores de la publicación. sync_mode es de tipo nvarchar(10) y puede tener uno de los siguientes valores.

    Valor Descripción

    native (predeterminado)

    Genera la salida de todas las tablas mediante un programa de copia masiva en modo nativo.

    character

    Genera la salida de todas las tablas mediante un programa de copia masiva en modo de caracteres. Es necesario para admitir los suscriptores de SQL Server 2005 Compact Edition y los suscriptores que no son de SQL Server

  • [ **@allow\_push=**\] 'allow_push'
    Especifica si es posible crear suscripciones de inserción en la publicación indicada. allow_push es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite suscripciones de inserción en la publicación.
  • [ **@allow\_pull=**\] 'allow_pull'
    Especifica si es posible crear suscripciones de extracción en la publicación indicada. allow_pull es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite suscripciones de extracción en la publicación. Debe especificarse True para que se admitan los suscriptores de SQL Server 2005 Compact Edition.
  • [ @allow\_anonymous=**\] 'allow_anonymous'
    Especifica si es posible crear suscripciones anónimas en la publicación indicada. allow_anonymous es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite las suscripciones anónimas en la publicación. Debe especificarse true para que se admitan los suscriptores de SQL Server 2005 Compact Edition
    .
  • [ **@enabled\_for\_internet=**\] 'enabled_for_internet'
    Especifica si la publicación está habilitada para Internet y determina si se puede utilizar el protocolo de transferencia de archivos (FTP) para transferir los archivos de instantánea a un suscriptor. enabled_for_internet es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, los archivos de sincronización de la publicación se colocan en el directorio C:\Archivos de programa\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. El usuario debe crear el directorio Ftp. Si es false, la publicación no está habilitada para el acceso a Internet.
  • [ @centralized\_conflicts = ] 'centralized_conflicts'
    Este parámetro se ha desaprobado y sólo se admite por compatibilidad con versiones anteriores de secuencias de comandos. Use conflict_logging para especificar la ubicación donde se almacenan los registros de conflictos.
  • [ @dynamic\_filters =] 'dynamic_filters'
    Permite que la publicación de mezcla utilice filtros de fila con parámetros. dynamic_filters es de tipo nvarchar(5) y su valor predeterminado es FALSE.

    [!NOTA] No se recomienda especificar este parámetro; es mejor que SQL Server determine de forma automática si se están utilizando filtros de fila con parámetros. Si se especifica el valor true para dynamic_filters, debe definirse un filtro de fila con parámetros para el artículo. Para obtener más información, vea How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming).

  • [ @snapshot\_in\_defaultfolder = ] 'snapshot_in_default_folder'
    Especifica si los archivos de instantáneas se almacenan en la carpeta predeterminada. snapshot_in_default_folder es de tipo nvarchar(5) y su valor predeterminado es TRUE. Si es true, los archivos de instantáneas se encuentran en la carpeta predeterminada. Si es false, los archivos de instantáneas se almacenarán en la ubicación alternativa especificada por alternate_snapshot_folder. Las ubicaciones alternativas pueden encontrarse en otro servidor, en una unidad de red o en medios extraíbles (como CD-ROM o discos extraíbles). También puede guardar los archivos de instantáneas en un sitio FTP (Protocolo de transferencia de archivos), para que el suscriptor los recupere más tarde. Observe que este parámetro puede ser True y tener una ubicación especificada en alt_snapshot_folder. Esta combinación especifica que los archivos de instantáneas se almacenarán tanto en la ubicación predeterminada como en la alternativa.
  • [ @alt\_snapshot\_folder = ] 'alternate_snapshot_folder'
    Especifica la ubicación de la carpeta alternativa para la instantánea. alternate_snapshot_folder es de tipo nvarchar(255) y su valor predeterminado es NULL.
  • [ @pre\_snapshot\_script = ] 'pre_snapshot_script'
    Especifica un puntero a una ubicación de archivos .sql. pre_snapshot_script es de tipo nvarchar(255) y su valor predeterminado es NULL. El Agente de mezcla ejecutará la secuencia de comandos previa a la instantánea antes que cualquiera de las secuencias de comandos de objetos replicados al aplicar la instantánea en un suscriptor. La secuencia de comandos se ejecuta en el contexto de seguridad utilizado por el Agente de mezcla durante la conexión con la base de datos de suscripciones. Las secuencias de comandos previas a la instantánea no se ejecutan en los suscriptores de SQL Server 2005 Compact Edition*.*
  • [ @post\_snapshot\_script = ] 'post_snapshot_script'
    Especifica un puntero a una ubicación de archivos .sql. post_snapshot_script es de tipo nvarchar(255) y su valor predeterminado es NULL. El Agente de mezcla ejecutará la secuencia de comandos posterior a la instantánea después de que se apliquen las demás secuencias de comandos y datos de objetos replicados durante una sincronización inicial. La secuencia de comandos se ejecuta en el contexto de seguridad utilizado por el Agente de mezcla durante la conexión con la base de datos de suscripciones. Las secuencias de comandos posteriores a la instantánea no se ejecutan en los suscriptores de SQL Server 2005 Compact Edition*.*
  • [ @compress\_snapshot = ] 'compress_snapshot'
    Especifica que la instantánea escrita en la ubicación @alt\_snapshot\_folder** debe comprimirse en el formato CAB de Microsoft. compress_snapshot es de tipo nvarchar(5) y su valor predeterminado es FALSE. false especifica que la instantánea no se comprimirá y true especifica que se comprimirá. No se pueden comprimir archivos de instantáneas mayores de 2 GB. Los archivos de instantáneas comprimidos se descomprimen en la ubicación en la que se ejecuta el Agente de mezcla; normalmente, se utilizan suscripciones de extracción con las instantáneas comprimidas para descomprimir los archivos en el suscriptor. La instantánea de la carpeta predeterminada no se puede comprimir. Debe especificarse false para que se admitan los suscriptores de SQL Server 2005 Compact Edition.
  • [ @ftp\_address = ] 'ftp_address'
    Es la dirección de red del servicio FTP del distribuidor. ftp_address es de tipo sysname y su valor predeterminado es NULL. Especifica dónde se encuentran los archivos de instantánea de la publicación para que los recoja el Agente de mezcla de un suscriptor. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener un valor diferente para ftp_address. La publicación debe ser compatible con la propagación de instantáneas mediante FTP.
  • [ **@ftp\_port=** ] ftp_port
    Es el número de puerto del servicio FTP del distribuidor. ftp_port es de tipo int y su valor predeterminado es 21. Especifica dónde se encuentran los archivos de instantánea de la publicación para que los recoja el Agente de mezcla de un suscriptor. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener un valor de ftp_port propio.
  • [ @ftp\_subdirectory = ] 'ftp_subdirectory'
    Especifica dónde estarán disponibles los archivos de instantánea para que los recoja el Agente de mezcla del suscriptor si la publicación admite la propagación de instantáneas mediante FTP. ftp_subdirectory es de tipo nvarchar(255) y su valor predeterminado es NULL. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener un valor de ftp_subdirctory propio u optar por no tener ningún subdirectorio, lo que se indica con el valor NULL.

    En la generación previa de instantáneas para publicaciones con filtros con parámetros, la instantánea de datos de cada partición del suscriptor debe estar en su propia carpeta. La estructura de directorios para las instantáneas generadas previamente mediante FTP debe ser la siguiente:

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    [!NOTA] Los valores indicados en cursiva dependen de la configuración específica de la publicación y partición del suscriptor.

  • [ @ftp\_login = ] 'ftp_login'
    Es el nombre de usuario que se utiliza para la conexión con el servicio FTP. ftp_login es de tipo sysname y su valor predeterminado es "anonymous".
  • [ @ftp\_password = ] 'ftp_password'
    Es la contraseña de usuario que se utiliza para la conexión con el servicio FTP. ftp_password es de tipo sysname y su valor predeterminado es NULL.

    ms176103.security(es-es,SQL.90).gifNota de seguridad:
    No utilice una contraseña en blanco. Utilice una contraseña segura.
  • [ @conflict\_retention = ] conflict_retention
    Especifica el período de retención, expresado en días, durante el cual se retienen los conflictos. conflict_retention es de tipo int y su valor predeterminado es 14 días antes de que se purgue la fila que corresponde al conflicto en la tabla de conflictos.
  • [ @keep\_partition\_changes = ] 'keep_partition_changes'
    Especifica si se pueden habilitar las optimizaciones de los cambios en las particiones cuando no se pueden utilizar particiones precalculadas. keep_partition_changes es de tipo nvarchar(5) y su valor predeterminado es TRUE. false indica que los cambios de las particiones no se optimizan y, cuando no se utilizan particiones precalculadas, las particiones enviadas a todos los suscriptores se comprueban cuando se producen cambios en los datos de una partición. true indica que se optimizan los cambios en las particiones y sólo los suscriptores que tengan filas en las particiones modificadas se verán afectados. Cuando se utilicen particiones precalculadas, establezca use_partition_groups en true y establezca keep_partition_changes en false. Para obtener más información, vea Optimizar el rendimiento de los filtros con parámetros con particiones precalculadas.

    [!NOTA] Si especifica un valor de true para keep_partition_changes, especifique un valor de 1 para el parámetro -MaxNetworkOptimization del Agente de instantáneas. Para obtener más información acerca de este parámetro, vea Replication Snapshot Agent. Para obtener información acerca de cómo especificar parámetros de agente, vea Administrar agentes de réplica.

  • [ **@allow\_subscription\_copy=** ] 'allow_subscription_copy'
    Habilita o deshabilita la posibilidad de copiar las bases de datos de suscripciones que se suscriben a esta publicación. allow_subscription_copy es de tipo nvarchar(5) y su valor predeterminado es FALSE. El tamaño de la base de datos de suscripciones que se va a copiar debe ser inferior a 2 GB.
  • [ @allow\_synctoalternate = ] 'allow_synctoalternate'
    Permite que un asociado de sincronización alternativo se sincronice con este publicador. allow_synctoalternate es de tipo nvarchar(5) y su valor predeterminado es FALSE. Los asociados alternativos no se admiten para los suscriptores de SQL Server 2005 Compact Edition.
  • [ @validate\_subscriber\_info = ] 'validate_subscriber_info'
    Muestra las funciones que se utilizan para definir una partición de suscriptor de los datos publicados cuando se utilizan filtros de fila con parámetros. validate_subscriber_info es de tipo nvarchar(500) y su valor predeterminado es NULL. El Agente de mezcla utiliza esta información para validar la partición del suscriptor. Por ejemplo, si se utiliza SUSER_SNAME (Transact-SQL) en el filtro de fila con parámetros, el parámetro debería ser @validate_subscriber_info=N'SUSER_SNAME()'.

    [!NOTA] No se recomienda especificar este parámetro; es mejor que SQL Server determine de forma automática el criterio de filtrado.

  • [ @add\_to\_active\_directory = ] 'add_to_active_directory'
    Este parámetro se ha desaprobado y sólo se admite por compatibilidad con versiones anteriores de secuencias de comandos. Ya no se puede agregar información de publicación a Microsoft Active Directory.
  • [ @max\_concurrent\_merge = ] maximum_concurrent_merge
    Número máximo de procesos de mezcla simultáneos. maximum_concurrent_merge es de tipo int y su valor predeterminado es 0. Si se utiliza el valor 0 para esta propiedad, significa que no hay límite para el número de procesos de mezcla simultáneos que se ejecutan en un momento dado. Esta propiedad establece un límite para el número de procesos de mezcla simultáneos que se pueden ejecutar con una publicación de mezcla en un momento determinado. Si hay más procesos de mezcla programados para ejecutarse simultáneamente de los que permite el valor de esta propiedad, los trabajos restantes se colocan en una cola hasta que finalice el proceso de mezcla que se está ejecutando en ese momento.
  • [ @max\_concurrent\_dynamic\_snapshots =] max_concurrent_dynamic_snapshots
    Número máximo de sesiones del Agente de instantáneas que se pueden ejecutar simultáneamente para generar instantáneas de datos filtrados para particiones de suscriptor. maximum_concurrent_dynamic_snapshots es de tipo int y su valor predeterminado es 0. Si se especifica 0, no existe ningún límite para el número de sesiones de instantáneas. Si hay más procesos de instantánea programados al mismo tiempo que los que permite ejecutar el valor, los trabajos sobrantes se colocarán en una cola y esperarán hasta que finalice el proceso de instantánea que se está ejecutando actualmente.
  • [ **@use\_partition\_groups**= ] 'use_partition_groups'
    Especifica que deben utilizarse particiones precalculadas para optimizar el proceso de sincronización. use_partition_groups es de tipo nvarchar(5) y puede tener uno de los valores siguientes:

    Valor Descripción

    true

    La publicación utiliza particiones precalculadas.

    false

    La publicación no utiliza particiones precalculadas.

    NULL (predeterminado)

    El sistema decide la estrategia de partición.

    Las particiones precalculadas se utilizan de manera predeterminada. Para evitar el uso de particiones precalculadas, use_partition_groups debe establecerse en false. Si es NULL, el sistema decidirá si se pueden utilizar. Si no se pueden utilizar particiones precalculadas, este valor se convierte en false sin generar errores. En casos como éste, keep_partition_changes se puede establecer en true para proporcionar alguna optimización. Para obtener más información, vea Filtros de fila con parámetros y Optimizar el rendimiento de los filtros con parámetros con particiones precalculadas.

  • [ **@publication\_compatibility\_level**= ] backward_comp_level
    Indica la compatibilidad de la publicación con versiones anteriores. backward_comp_level es de tipo nvarchar(6) y puede tener uno de estos valores:

    Valor Versión

    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 (predeterminado)

    SQL Server 2000 Service Pack 3

    90RTM

    Microsoft SQL Server 2005

  • [ **@replicate\_ddl**= ] replicate_ddl
    Indica si se admite la réplica de esquema para la publicación. replicate_ddl es de tipo int y su valor predeterminado es 1. 1 indica que se replicarán las instrucciones del lenguaje de definición de datos (DDL) ejecutadas en el publicador y 0 indica que no se replicarán las instrucciones DDL. Para obtener más información, vea Realizar cambios de esquema en las bases de datos de publicaciones.
  • [ **@allow\_subscriber\_initiated\_snapshot**= ] 'allow_subscriber_initiated_snapshot'
    Indica si los suscriptores de esta publicación pueden iniciar el proceso de instantáneas para generar la instantánea filtrada para su partición de datos. allow_subscriber_initiated_snapshot es de tipo nvarchar(5) y su valor predeterminado es FALSE. true indica que los suscriptores pueden iniciar el proceso de instantáneas.
  • [ @allow\_web\_synchronization** = ] 'allow_web_synchronization'
    Especifica si la publicación está habilitada para la sincronización Web. allow_web_synchronization es de tipo nvarchar(5) y su valor predeterminado es FALSE. true especifica que las suscripciones a esta publicación se pueden sincronizar a través de HTTPS. Para obtener más información, vea Sincronización Web para la réplica de mezcla. Debe especificarse true para que se admitan los suscriptores de SQL Server 2005 Compact Edition
    .
  • [ **@web\_synchronization\_url**= ] 'web_synchronization_url'
    Especifica el valor predeterminado de la dirección URL de Internet que se utiliza para la sincronización Web. web_synchronization_url es de tipo nvarchar(500) y su valor predeterminado es NULL. Define la dirección URL de Internet predeterminada si no se establece ninguna de manera explícita al ejecutar sp_addmergepullsubscription_agent.
  • [ **@allow\_partition\_realignment** = ] 'allow_partition_realignment']
    Determina si deben enviarse las eliminaciones al suscriptor cuando la modificación de la fila en el publicador hace que cambie su partición. allow_partition_realignment es de tipo nvarchar(5) y su valor predeterminado es TRUE. true envía las eliminaciones al suscriptor para reflejar los resultados de un cambio en la partición, quitando los datos que ya no son parte de la partición del suscriptor. false mantiene los datos de una partición antigua en el suscriptor, en cuyo caso los cambios realizados en estos datos en el publicador no se replicarán al suscriptor, pero los cambios efectuados en el suscriptor se replicarán al publicador. Al establecer allow_partition_realignment en false, se conservan los datos de una partición antigua de una suscripción cuando estos datos deben estar accesibles por razones históricas.

    [!NOTA] Los datos que permanecen en el suscriptor como resultado de establecer allow_partition_realignment en false deberían tratarse como si fuesen de sólo lectura, aunque el sistema de réplica no impone este comportamiento.

  • [ **@retention\_period\_unit**= ] 'retention_period_unit'
    Especifica las unidades del período de retención que establece retention. retention_period_unit es de tipo nvarchar(10) y puede tener uno de los valores siguientes.

    Valor Versión

    day (predeterminado)

    El período de retención se especifica en días.

    week

    El período de retención se especifica en semanas.

    month

    El período de retención se especifica en meses.

    year

    El período de retención se especifica en años.

  • [ **@automatic\_reinitialization\_policy** = ] automatic_reinitialization_policy
    Especifica si deben cargarse los cambios desde el suscriptor antes de que se produzca una reinicialización automática debido a un cambio en la publicación, ya que se especificó el valor 1 para **@force\_reinit\_subscription**. automatic_reinitialization_policy es de tipo bit y su valor predeterminado es 0. 1 indica que se carguen los cambios desde el suscriptor antes de que se produzca una reinicialización automática.

    ms176103.note(es-es,SQL.90).gifImportante:
    Si agrega, quita o cambia un filtro con parámetros, los cambios pendientes en el suscriptor no se pueden cargar en el publicador durante la reinicialización. Si desea cargar los cambios pendientes, sincronice todas las suscripciones antes de cambiar el filtro.
  • [ **@conflict\_logging** = ] 'conflict_logging'
    Especifica dónde se almacenan los registros de conflictos. conflict_logging es de tipo nvarchar(15) y puede tener uno de los valores siguientes:

    Valor Descripción

    publisher

    Los registros de conflictos se almacenan en el publicador.

    subscriber

    Los registros de conflictos se almacenan en el suscriptor que causó el conflicto. No se admite para suscriptores de SQL Server 2005 Compact Edition.

    both

    Los registros de conflictos se almacenan en el publicador y en el suscriptor.

    NULL (predeterminado)

    La réplica establece conflict_logging en both automáticamente cuando el valor de backward_comp_level es 90RTM y en publisher en los demás casos.

Notas

sp_addmergepublication se utiliza en la réplica de mezcla.

Para enumerar los objetos de publicación en Active Directory mediante el parámetro **@add\_to\_active\_directory**, es necesario que el objeto de SQL Server se haya creado previamente en Active Directory.

Si hay varias publicaciones que publiquen el mismo objeto de base de datos, sólo las que tengan replicate_ddl establecido en 1 replicarán las instrucciones DDL (lenguaje de definición de datos) ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION y ALTER TRIGGER. Sin embargo, replicarán una instrucción DDL ALTER TABLE DROP COLUMN todas las publicaciones que publiquen la columna quitada.

En el caso de los suscriptores de SQL Server 2005 Compact Edition, el valor de alternate_snapshot_folder sólo se utiliza cuando el valor de snapshot_in_default_folder es false.

Cuando la réplica DDL está habilitada (replicate_ddl**=1**) para una publicación, para poder realizar cambios de DDL en la publicación sin que se repliquen, primero debe ejecutarse sp_changemergepublication para establecer replicate_ddl en 0. Una vez que se hayan ejecutado las instrucciones DDL sin réplica, se puede volver a ejecutar sp_changemergepublication para activar de nuevo la réplica DDL.

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_addmergepublication.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplo

-- 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

Vea también

Referencia

sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Procedimientos almacenados de réplica (Transact-SQL)

Otros recursos

How to: Create a Publication (Replication Transact-SQL Programming)
Publicar datos y objetos de base de datos

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se agregó información acerca de cómo usar el parámetro -MaxNetworkOptimization del Agente de instantáneas.
  • Se agregó información acerca del parámetro generation_leveling_threshold.