sp_adddistpublisher (Transact-SQL)

Configura un publicador para que utilice una base de datos de distribución determinada. Este procedimiento almacenado se ejecuta en el distribuidor de cualquier base de datos. Observe que los procedimientos almacenados sp_adddistributor (Transact-SQL) y sp_adddistributiondb (Transact-SQL) se deben ejecutar antes de utilizar este procedimiento almacenado.

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

Sintaxis

sp_adddistpublisher [ @publisher= ] 'publisher' 
        , [ @distribution_db= ] 'distribution_db' 
    [ , [ @security_mode= ] security_mode ] 
    [ , [ @login= ] 'login' ] 
    [ , [ @password= ] 'password' ] 
    [ , [ @working_directory= ] 'working_directory' ] 
    [ , [ @trusted= ] 'trusted' ] 
    [ , [ @encrypted_password= ] encrypted_password ] 
    [ , [ @thirdparty_flag = ] thirdparty_flag ]
    [ , [ @publisher_type = ] 'publisher_type' ]

Argumentos

  • [ @publisher = ] 'publisher'
    Es el nombre del publicador. publisher es de tipo sysname y no tiene valor predeterminado.

  • [ @distribution_db=] 'distribution_db'
    Es el nombre de la base de datos de distribución. distributor_db es de tipo sysname y no tiene valor predeterminado. Los agentes de replicación utilizan este parámetro para conectarse al publicador.

  • [ @security_mode=] security_mode
    Es el modo de seguridad implementado. Los agentes de replicación utilizan este parámetro para conectarse al publicador en suscripciones de actualización en cola o con un publicador no SQL Server. security_mode es de tipo int y puede tener uno de los valores siguientes.

    Valor

    Descripción

    0

    Los agentes de replicación del distribuidor utilizan la autenticación de SQL Server para conectarse al publicador.

    1 (predeterminado)

    Los agentes de replicación del distribuidor utilizan la autenticación de Windows para conectarse al publicador.

  • [ @login=] 'login'
    Es el inicio de sesión. Este parámetro es necesario si security_mode es 0. login es de tipo sysname y su valor predeterminado es NULL. Los agentes de replicación utilizan este parámetro para conectarse al publicador.

  • [ @password=] 'password']
    Es la contraseña. password es de tipo sysname y su valor predeterminado es NULL. Los agentes de replicación utilizan este parámetro para conectarse al publicador.

    Nota de seguridadNota de seguridad

    No utilice una contraseña en blanco. Utilice una contraseña segura.

  • [ @working_directory=] 'working_directory'
    Es el nombre del directorio de trabajo utilizado para almacenar archivos de datos y de esquema para la publicación. working_directory es de tipo nvarchar(255) y su valor predeterminado es la carpeta ReplData para esta instancia de SQL Server, por ejemplo, 'C:\Archivos de programa\Microsoft SQL Server\MSSQL\MSSQ.1\ReplData'. El nombre se debe especificar en el formato UNC.

  • [ @trusted=] 'trusted'
    Este parámetro ya no se utiliza y se mantiene sólo por compatibilidad con versiones anteriores. trusted es de tipo nvarchar(5) y si lo establece en un valor distinto de false, se generará un error.

  • [ @encrypted_password=] encrypted_password
    Ya no se admite establecer encrypted_password. Si intenta establecer este parámetro bit en 1, se generará un error.

  • [ @thirdparty_flag =] thirdparty_flag
    Indica si el publicador es SQL Server. thirdparty_flag es de tipo bit y puede tener uno de los valores siguientes.

    Valor

    Descripción

    0 (predeterminado)

    Base de datos de SQL Server.

    1

    Otra base de datos distinta de SQL Server.

  • [ @publisher_type= ] 'publisher_type'
    Especifica el tipo de publicador cuando el publicador no es SQL Server. publisher_type es de tipo sysname y puede tener uno de los valores siguientes.

    Valor

    Descripción

    MSSQLSERVER 

    (predeterminado)

    Especifica un publicador de SQL Server.

    ORACLE

    Especificar un publicador estándar de Oracle.

    ORACLE GATEWAY

    Especifica un publicador Oracle Gateway.

    Para obtener más información acerca de las diferencias entre un publicador de Oracle y un publicador Oracle Gateway, vea Configurar un publicador de Oracle.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_adddistpublisher se utiliza en la replicación de instantáneas, transaccional y de mezcla.

Ejemplo

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".

-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
-- Specify the replication working directory.
SET @directory = N'\\' + $(DistPubServer) + '\repldata';
-- Specify the publication database.
SET @publicationDB = N'AdventureWorks'; 

-- Install the server MYDISTPUB as a Distributor using the defaults,
-- including autogenerating the distributor password.
USE master
EXEC sp_adddistributor @distributor = @distributor;

-- Create a new distribution database using the defaults, including
-- using Windows Authentication.
USE master
EXEC sp_adddistributiondb @database = @distributionDB, 
    @security_mode = 1;
GO

-- Create a Publisher and enable AdventureWorks for replication.
-- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor
-- and use Windows Authentication.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);

USE [distribution]
EXEC sp_adddistpublisher @publisher=@publisher, 
    @distribution_db=@distributionDB, 
    @security_mode = 1;
GO 

Permisos

Sólo los miembros de la función fija de servidor sysadmin pueden ejecutar sp_adddistpublisher.