Compartir a través de


sp_addpublication (Transact-SQL)

Actualizado: 12 de diciembre de 2006

Crea una publicación de instantáneas o transaccional. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

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

Sintaxis

sp_addpublication [ @publication = ] 'publication'
    [ , [ @taskid = ] tasked ]
    [ , [ @restricted = ] 'restricted' ]
    [ , [ @sync_method = ] 'sync_method' ]
    [ , [ @repl_freq = ] 'repl_freq' ]
    [ , [ @description = ] 'description' ]
    [ , [ @status = ] 'status' ]
    [ , [ @independent_agent = ] 'independent_agent' ]
    [ , [ @immediate_sync = ] 'immediate_sync' ]
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
    [ , [ @allow_push = ] 'allow_push'
    [ , [ @allow_pull = ] 'allow_pull' ]
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]
    [ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
    [ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
    [ , [ @retention = ] retention ]
    [ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
        [ , [ @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' ]
    [ , [ @allow_dts = ] 'allow_dts' ]
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
    [ , [ @conflict_policy = ] 'conflict_policy' ]
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @queue_type = ] 'queue_type' ]
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
    [ , [ @logreader_job_name = ] 'logreader_agent_name' ]
    [ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
    [ , [ @publisher = ] 'publisher' ] 
    [ , [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @enabled_for_p2p = ] 'enabled_for_p2p' ]
    [ , [ @publish_local_changes_only = ] 'publish_local_changes_only' ]
    [ , [ @enabled_for_het_sub = ] 'enabled_for_het_sub' ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación que se va a crear. publication es de tipo sysname y no tiene ningún valor predeterminado. El nombre debe ser único en la base de datos.
  • [ @restricted=] 'restricted'
    Se admite únicamente por compatibilidad con versiones anteriores; utilice default_access.
  • [ @sync_method=] 'sync_method**'**
    Es el modo de sincronización. sync_method es de tipo nvarchar(13) y puede tener uno de los siguientes valores.

    Valor Descripción

    native

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo nativo. No es compatible con publicadores de Oracle.

    character

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo de carácter. Para un publicador de Oracle, character sólo es válido para la réplica de instantáneas.

    concurrent

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo nativo, pero no bloquea las tablas durante la instantánea. Sólo se admite para publicaciones transaccionales. No es compatible con publicadores de Oracle.

    concurrent_c

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo de carácter, pero no bloquea las tablas durante la instantánea. Sólo se admite para publicaciones transaccionales.

    database snapshot

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo nativo desde una instantánea de la base de datos. Esta opción requiere el Service Pack 2 de SQL Server 2005 Enterprise Edition o una versión posterior.

    database snapshot character

    Produce la salida de todas las tablas mediante un programa de copia masiva en modo de carácter desde una instantánea de la base de datos. Esta opción requiere el Service Pack 2 de SQL Server 2005 Enterprise Edition o una versión posterior.

    NULL (predeterminado)

    Adopta de forma predeterminada el valor native para publicadores de Microsoft SQL Server. Para los publicadores que no sean de SQL Server, adopta de forma predeterminada el valor character cuando el valor de repl_freq es Snapshot y el valor concurrent_c en el resto de los casos.

  • [ @repl_freq=] 'repl_freq'
    Es el tipo de frecuencia de réplica. repl_freq es de tipo nvarchar(10) y puede tener uno de los siguientes valores.

    Valor Descripción

    continuous (predeterminado)

    El publicador proporciona la salida de todas las transacciones basadas en el registro. Para los publicadores que no sean de SQL Server, esto requiere que sync_method se defina como concurrent_c.

    snapshot

    El publicador sólo genera eventos de sincronización programados. Para los publicadores que no sean de SQL Server, esto requiere que sync_method se defina como character.

  • [ @description=] 'description'
    Es la descripción opcional de la publicación. description es de tipo nvarchar(255) y su valor predeterminado es NULL.
  • [ @status=] 'status'
    Especifica si los datos de la publicación están disponibles. status es de tipo nvarchar(8) y puede tener uno de los siguientes valores.

    Valor Descripción

    active

    Los datos de la publicación están inmediatamente disponibles para los suscriptores.

    inactive (predeterminado)

    Los datos de la publicación no están disponibles para los suscriptores la primera vez que se crea la publicación (pueden suscribirse, pero las suscripciones no se procesan).

    No es compatible con publicadores de Oracle.

  • [ @independent_agent=] 'independent_agent'
    Especifica si hay un Agente de distribución independiente para esta publicación. independent_agent es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, indica que existe un Agente de distribución independiente para esta publicación. Si es false, la publicación utiliza un Agente de distribución compartido, y cada par de base de datos de publicador y base de datos de suscriptor tiene un único agente compartido.
  • [ @immediate_sync=] 'immediate_synchronization'
    Especifica si los archivos de sincronización de la publicación se crean cada vez que se ejecuta el Agente de instantáneas. immediate_synchronization es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, los archivos de sincronización se crean o se vuelven a crear cada vez que se ejecuta el Agente de instantáneas. Los suscriptores pueden disponer inmediatamente de los archivos si el Agente de instantáneas ya ha terminado su tarea antes de crear la suscripción. Las nuevas suscripciones obtienen los archivos de sincronización más recientes generados por la ejecución más reciente del Agente de instantáneas. independent_agent debe ser true para que immediate_synchronization sea true. Si es false, los archivos de sincronización sólo se crean si hay nuevas suscripciones. Es preciso llamar a sp_addsubscription para cada suscripción cuando se agrega incrementalmente un artículo nuevo a una publicación existente. Los suscriptores no pueden recibir los archivos de sincronización después de suscribirse hasta que los Agentes de instantáneas hayan empezado y terminado.
  • [ @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.
  • [ @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 para la publicación indicada. allow_pull es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es false, no se admiten suscripciones de extracción en la publicación.
  • [ @allow_anonymous=] 'allow_anonymous'
    Especifica si es posible crear suscripciones anónimas para la publicación indicada. allow_anonymous es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, immediate_synchronization también debe estar establecido en true. Si es false, no se admiten suscripciones anónimas en la publicación.
  • [ @allow_sync_tran=] 'allow_sync_tran'
    Especifica si es posible crear suscripciones de actualización inmediata en la publicación. allow_sync_tran es de tipo nvarchar(5) y su valor predeterminado es FALSE. true corresponde a No es compatible con publicadores de Oracle.
  • [ @autogen_sync_procs=] 'autogen_sync_procs'
    Especifica si el procedimiento almacenado de sincronización para las suscripciones de actualización inmediata se genera en el publicador. autogen_sync_procs es de tipo nvarchar(5) y puede tener uno de los siguientes valores.

    Valor Descripción

    true

    Se define de forma automática cuando se habilita la actualización de suscripciones.

    false

    Se define automáticamente cuando no se ha habilitado la actualización de suscripciones o para publicadores de Oracle.

    NULL (predeterminado)

    Adopta el valor true de forma predeterminada cuando se habilita la actualización de suscripciones y false en el caso contrario.

    [!NOTA] El valor suministrado por el usuario para autogen_sync_procsse sobrescribirá en función de los valores especificados para allow_queued_tran y allow_sync_tran.

  • [ @retention=] retention
    Es el período de retención, en horas, de la actividad de la suscripción. retention es de tipo int y su valor predeterminado es 336 horas. Si una suscripción no ha estado activa durante el período de retención, caduca y se quita. El valor puede ser mayor que el período máximo de retención de la base de datos de distribución utilizada por el publicador. Si es 0, las suscripciones conocidas de la publicación no caducarán nunca y no las quitará el Agente de limpieza de suscripción caducada.
  • [ @allow_queued_tran= ] 'allow_queued_updating'
    Habilita o deshabilita la cola de cambios en el suscriptor hasta que pueden aplicarse en el publicador. allow_queued_updating es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es false, los cambios en el suscriptor no se ponen en cola. trueno se admite para publicadores de Oracle.
  • [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder'
    Especifica si los archivos de instantánea 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ánea se encuentran en la carpeta predeterminada. Si es false, los archivos de instantánea se han almacenado 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 (tales como CD-ROM o discos extraíbles). También puede guardar los archivos de instantánea en un sitio FTP, para que el suscriptor los recupere más tarde. Observe que este parámetro puede ser true y seguir teniendo una ubicación en el parámetro @alt_snapshot_folder. Esta combinación especifica que los archivos de instantánea 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 distribución ejecutará la secuencia de comandos previa a la instantánea antes de ejecutar cualquiera de las secuencias de comandos de los objetos replicados al aplicar la instantánea a un suscriptor. La secuencia de comandos se ejecuta en el contexto de seguridad utilizado por el Agente de distribución al conectarse a la base de datos de suscripciones.
  • [ @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 distribución ejecutará la secuencia de comandos posterior a la instantánea después de que se apliquen el resto de las secuencias de comandos de objetos replicados y datos durante la sincronización inicial. La secuencia de comandos se ejecuta en el contexto de seguridad utilizado por el Agente de distribución al conectarse a la base de datos de suscripciones.
  • [ @compress_snapshot= ] 'compress_snapshot'
    Especifica que la instantánea escrita en la ubicación @alt_snapshot_folder se va a comprimir con 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á; true especifica que se comprimirá. No se pueden comprimir los archivos de instantánea de más de 2 gigabytes (GB). Los archivos de instantánea comprimidos se descomprimen en la ubicación en la que se ejecuta el Agente de distribución; por lo general, se usan 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.
  • [ @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 una publicación para que los recoja el Agente de distribución o el Agente de mezcla de un suscriptor. Puesto que esta propiedad se almacena para cada publicación, cada publicación puede tener un parámetro ftp_address diferente. 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 para el distribuidor. ftp_port es de tipo int y su valor predeterminado es 21. Especifica la ubicación de los archivos de instantánea de la publicación para que los recoja el Agente de distribución o 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 distribución o el Agente de mezcla del suscriptor si la publicación es compatible con 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 su propio ftp_subdirectory o elegir no tener subdirectorio, indicándolo con un valor NULL.
  • [ @ftp_login = ] 'ftp_login'
    Es el nombre de usuario que se utiliza para conectarse al 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 conectarse al servicio FTP. ftp_password es de tipo sysname y su valor predeterminado es NULL.
  • [ @allow_dts = ] 'allow_dts'
    Especifica que la publicación permite transformaciones de datos. Se puede especificar un paquete DTS al crear una suscripción. allow_transformable_subscriptions es de tipo nvarchar(5) y su valor predeterminado es FALSE, que no permite transformaciones DTS. Cuando allow_dts es true, sync_method debe definirse como character o concurrent_c.

    trueno es compatible con publicadores de Oracle.

  • [ @allow_subscription_copy = ] 'allow_subscription_copy'
    Habilita o deshabilita la funcionalidad de copia de 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.
  • [ @conflict_policy = ] 'conflict_policy'
    Especifica la directiva de resolución de conflictos seguida cuando se utiliza la opción de suscriptor de actualización en cola. conflict_policy es de tipo nvarchar(100) y su valor predeterminado es NULL; puede tener uno de los siguientes valores.

    Valor Descripción

    pub wins

    El publicador gana el conflicto

    sub reinit

    Reinicializar la suscripción.

    sub wins

    El suscriptor gana el conflicto

    NULL (predeterminado)

    Si es NULL y se trata de una publicación de instantánea, la directiva predeterminada será sub reinit. Si es NULL y no se trata de una publicación de instantánea, la directiva predeterminada será pub wins.

    No es compatible con publicadores de Oracle.

  • [ @centralized_conflicts = ] 'centralized_conflicts'
    Especifica si los registros de conflictos se almacenan en el publicador. centralized_conflicts es de tipo nvarchar(5) y su valor predeterminado es TRUE. Si es true, los registros de conflictos se almacenan en el publicador. Si es false, los registros de conflictos se almacenan tanto en el publicador como en el suscriptor que provocó el conflicto. No es compatible con publicadores de Oracle.
  • [ @conflict_retention = ] conflict_retention
    Especifica el período de retención del conflicto en días. conflict_retention es de tipo int y su valor predeterminado es 14. No es compatible con publicadores de Oracle.
  • [ @queue_type = ] 'queue_type'
    Especifica el tipo de cola utilizado. queue_type es de tipo nvarchar(10) y su valor predeterminado es NULL; puede tener uno de estos valores.

    Valor Descripción

    sql

    Utiliza SQL Server para almacenar las transacciones.

    NULL (predeterminado)

    Adopta el valor predeterminado sql, que especifica el uso de SQL Server para almacenar las transacciones.

    [!NOTA] La compatibilidad para utilizar Microsoft Message Queuing ha dejado de incluirse. Especificar un valor de msmq dará como resultado una advertencia y la réplica definirá automáticamente el valor como sql.

    No es compatible con publicadores de Oracle.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Este parámetro ya no se utiliza y sólo se admite para la compatibilidad de las secuencias de comandos con versiones anteriores. Ya no es posible agregar información de las publicaciones a Microsoft Active Directory.
  • [ @logreader_job_name = ] 'logreader_agent_name'
    Es el nombre de un trabajo del agente existente. logreader_agent_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro se especifica sólo cuando el Agente de registro del LOG utiliza un trabajo existente en lugar de otro nuevo que se esté creando.
  • [ @qreader_job_name = ] 'queue_reader_agent_name'
    Es el nombre de un trabajo del agente existente. queue_reader_agent_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro se especifica sólo cuando el Agente de lectura de cola utiliza un trabajo existente en lugar de otro nuevo que se esté creando.
  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA] publisher no debería utilizarse al agregar una publicación a un publicador de SQL Server.

  • [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    Indica si los suscriptores pueden inicializar una suscripción a esta publicación desde una copia de seguridad, en lugar de hacerlo desde una instantánea inicial. allow_initialize_from_backup es de tipo nvarchar(5) y puede tener uno de estos valores:

    Valor Descripción

    true

    Habilita la inicialización desde una copia de seguridad.

    false

    Deshabilita la inicialización desde una copia de seguridad.

    NULL (predeterminado)

    Adopta de forma predeterminada el valor true para una publicación de una topología de réplica de punto a punto y false para todas las demás publicaciones.

    Para obtener más información, vea Inicializar una suscripción transaccional sin una instantánea.

  • [ @replicate_ddl= ] replicate_ddl
    Indica si se admite la réplica de esquemas para la publicación. replicate_ddl es de tipo int, y su valor predeterminado es 1 para los publicadores de SQL Server y 0 para los publicadores que no sean de SQL Server. 1 indica que las instrucciones de lenguaje de definición de datos (DDL) ejecutadas en el publicador se replican, y 0 indica que las instrucciones DDL no se replican. La réplica de esquema no es compatible con publicadores de Oracle. Para obtener más información, vea Realizar cambios de esquema en las bases de datos de publicaciones.
  • [ @enabled_for_p2p= ] 'enabled_for_p2p'
    Habilita la publicación para utilizarla en una topología de réplica punto a punto. enabled_for_p2p es de tipo nvarchar(5) y su valor predeterminado es FALSE. true indica que la publicación admite la réplica punto a punto. Al definir enabled_for_p2p como true, se aplican las siguientes restricciones:

    • allow_anonymous debe ser false.
    • allow_dts debe ser false.
    • allow_initialize_from_backup debe ser true.
    • allow_queued_tran debe ser false.
    • allow_sync_tran debe ser false.
    • conflict_policy debe ser false.
    • independent_agent debe ser true.

    repl_freq debe ser continuous.

    • replicate_ddl debe ser 1.

    Para obtener más información, vea Réplica transaccional de punto a punto.

  • [ @publish_local_changes_only= ] 'publish_local_changes_only'
    Exclusivamente para uso interno.
  • [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    Habilita la publicación para admitir suscriptores que no sean de SQL Server. enabled_for_het_sub es de tipo nvarchar(5) y su valor predeterminado es FALSE. Un valor true significa que la publicación admite suscriptores que no sean de SQL Server. Si enabled_for_het_sub es true, se aplican las siguientes restricciones:

    • allow_initialize_from_backup debe ser false.
    • allow_push debe ser true.
    • allow_queued_tran debe ser false.
    • allow_subscription_copy debe ser false.
    • allow_sync_tran debe ser false.
    • autogen_sync_procs debe ser false.
    • conflict_policy debe ser NULL.
    • enabled_for_internet debe ser false.
    • enabled_for_p2p debe ser false.
    • ftp_address debe ser NULL.
    • ftp_subdirectory debe ser NULL.
    • ftp_password debe ser NULL.
    • pre_snapshot_script debe ser NULL.
    • post_snapshot_script debe ser NULL.
    • replicate_ddl debe ser 0.
    • qreader_job_name debe ser NULL.
    • queue_type debe ser NULL.
    • sync_method no puede ser native ni concurrent.

    Para obtener más información, vea Suscriptores que no son de SQL Server.

Notas

sp_addpublication se utiliza en la réplica de instantáneas y transaccional.

Si existen varias publicaciones que publiquen el mismo objeto de base de datos, sólo las publicaciones con el valor 1 en el parámetro replicate_ddl replicarán las instrucciones ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION y ALTER TRIGGER de DDL. No obstante, todas las publicaciones que estén publicando la columna eliminada replicarán una instrucción DDL ALTER TABLE DROP COLUMN.

Con la réplica DDL habilitada (replicate_ddl = 1) para una publicación, para poder hacer cambios sin réplica DDL en la publicación, primero debe ejecutar sp_changepublication (Transact-SQL) para establecer replicate_ddl en 0. Una vez emitidas las instrucciones DDL que no se replican, sp_changepublication (Transact-SQL) puede ejecutarse de nuevo para volver a activar 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_addpublication.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplo

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

Vea también

Referencia

sp_addlogreader_agent (Transact-SQL)
sp_addpublication_snapshot (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
sp_replicationdboption (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 los nuevos valores para el parámetro sync_method.