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.
Convenciones 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 ningún 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 ningún 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. Este parámetro lo utilizan únicamente los agentes de replicación a fin de conectar al publicador para suscripciones de actualización en cola, o con un publicador que no sea de SQL Server. security_mode es de tipo int y puede tener uno de estos valores.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 obligatorio 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 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 ha quedado desusado y solamente se proporciona 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
Especifica un publicador estándar de Oracle.
ORACLE GATEWAY
Especifica un publicador de puerta de enlace de Oracle.
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)
Comentarios
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'AdventureWorks2012';
-- 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 AdventureWorks2012 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
Solo los miembros del rol fijo de servidor sysadmin pueden ejecutar sp_adddistpublisher.
Vea también
Referencia
sp_changedistpublisher (Transact-SQL)
sp_dropdistpublisher (Transact-SQL)
sp_helpdistpublisher (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)