sp_adddistpublisher (Transact-SQL)
Configura un server di pubblicazione per l'utilizzo del database di distribuzione specificato. Questa stored procedure viene eseguita in qualsiasi database del server di distribuzione. Si noti che, prima di utilizzare questa stored procedure, è necessario eseguire le stored procedure sp_adddistributor (Transact-SQL) e sp_adddistributiondb (Transact-SQL).
Convenzioni della sintassi Transact-SQL
Sintassi
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' ]
Argomenti
[ @publisher=] 'publisher'
Nome del server di pubblicazione. publisher è di tipo sysname e non prevede alcun valore predefinito.[ @distribution_db=] 'distribution_db'
Nome del database di distribuzione. distributor_db è di tipo sysname e non prevede alcun valore predefinito. Questo parametro viene utilizzato dagli agenti di replica per la connessione al server di pubblicazione.[ @security_mode=] security_mode
Modalità di sicurezza implementata. Questo parametro viene utilizzato solo dagli agenti di replica per connettersi al server di pubblicazione per sottoscrizioni ad aggiornamento in coda o con un server di pubblicazione non SQL Server. security_mode è di tipo int. I possibili valori sono i seguenti.Valore
Descrizione
0
Gli agenti di replica nel server di distribuzione si connettono al server di pubblicazione tramite l'autenticazione di SQL Server.
1 (predefinito)
Gli agenti di replica nel server di distribuzione si connettono al server di pubblicazione tramite l'autenticazione di Windows.
[ @login=] 'login'
Account di accesso. Questo parametro è obbligatorio se security_mode è 0. login è di tipo sysname e il valore predefinito è NULL. Questo parametro viene utilizzato dagli agenti di replica per la connessione al server di pubblicazione.[ @password=] 'password']
Password. password è di tipo sysname e il valore predefinito è NULL. Questo parametro viene utilizzato dagli agenti di replica per la connessione al server di pubblicazione.Nota sulla sicurezza Non utilizzare una password vuota. Utilizzare una password complessa.
[ @working_directory=] 'working_directory'
Nome della directory di lavoro utilizzata per archiviare i file dei dati e di schema per la pubblicazione working_directory è di tipo nvarchar (255) e il valore predefinito è la cartella ReplData per l'istanza corrente di SQL Server, ad esempio 'C:\Programmi\Microsoft SQL Server\MSSQL\MSSQ.1\ReplData'. Il nome deve essere specificato in formato UNC.[ @trusted=] 'trusted'
Questo parametro è deprecato ed è disponibile solo per compatibilità con le versioni precedenti. trusted è di tipo nvarchar (5) e l'impostazione su qualsiasi valore diverso da false causa un errore.[ @encrypted_password=] encrypted_password
L'impostazione di encrypted_password non è più supportata. Se si tenta di impostare questo parametro di tipo bit su 1 verrà generato un errore.[ @thirdparty_flag =] thirdparty_flag
Indica se il server di pubblicazione è un database di SQL Server. thirdparty_flag è di tipo bit. I possibili valori sono i seguenti.Valore
Descrizione
0 (predefinito)
Database di SQL Server.
1
Database non di SQL Server.
[ @publisher_type= ] 'publisher_type'
Specifica il tipo di server di pubblicazione quando è diverso da SQL Server. publisher_type è di tipo sysname. I valori possibili sono i seguenti.Valore
Descrizione
MSSQLSERVER
(predefinito)
Specifica un server di pubblicazione SQL Server.
ORACLE
Specifica un server di pubblicazione Oracle standard.
ORACLE GATEWAY
Specifica un server di pubblicazione Oracle Gateway.
Per ulteriori informazioni sulle differenze tra un server di pubblicazione Oracle standard e Oracle Gateway, vedere Configurazione di un server di pubblicazione Oracle.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
La stored procedure sp_adddistpublisher viene utilizzata per la replica snapshot, transazionale e di tipo merge.
Esempio
-- 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
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin possono eseguire sp_adddistpublisher.
Vedere anche
Riferimento
sp_changedistpublisher (Transact-SQL)
sp_dropdistpublisher (Transact-SQL)
sp_helpdistpublisher (Transact-SQL)
Stored procedure di sistema (Transact-SQL)