Sdílet prostřednictvím


sp_adddistpublisher (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Nakonfiguruje vydavatele tak, aby používal zadanou distribuční databázi. Tato uložená procedura se provádí u distributora v libovolné databázi. Uložené procedury sp_adddistributor a sp_adddistributiondb musí být spuštěny před použitím této uložené procedury.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

[ @publisher = ] N'publisher'

Název vydavatele. @publisher je sysname bez výchozího nastavení.

Poznámka:

Název serveru lze zadat jako <Hostname>,<PortNumber> výchozí instanci nebo <Hostname>\<InstanceName>,<PortNumber> pro pojmenovanou instanci. Zadejte číslo portu pro vaše připojení, když je SQL Server nasazen v Linuxu nebo Windows s vlastním portem a služba prohlížeče je zakázaná. Použití vlastních čísel portů pro vzdáleného distributora platí pro SQL Server 2019 (15.x) a novější verze.

[ @distribution_db = ] N'distribution_db'

Název distribuční databáze. @distribution_db je sysname bez výchozího nastavení. Tento parametr používají agenti replikace pro připojení k Publisheru.

[ @security_mode = ] security_mode

Implementovaný režim zabezpečení. Tento parametr používají pouze agenti replikace pro připojení k Publisheru pro aktualizaci předplatných ve frontě nebo pomocí jiného vydavatele než SQL Server. @security_mode je int a může to být jedna z těchto hodnot.

Hodnota Description
0 Agenti replikace u distributora používají ověřování SQL Serveru pro připojení k vydavateli.
1 (výchozí) Agenti replikace u distributora používají ověřování systému Windows pro připojení k vydavateli.

[ @login = ] N'login'

Přihlášení. Tento parametr je vyžadován, pokud je0security_mode . @login je sysname, s výchozím nastavením NULL. Tento parametr používají agenti replikace pro připojení k Publisheru.

[ @password = ] N'password'

Heslo. @password je sysname, s výchozím nastavením NULL. Tento parametr používají agenti replikace pro připojení k Publisheru.

Důležité

Nepoužívejte prázdné heslo. Použijte silné heslo.

[ @working_directory = ] N'working_directory'

Název pracovního adresáře použitého k ukládání dat a souborů schématu publikace. @working_directory je nvarchar(255) a výchozí hodnota je ReplData složka pro tuto instanci SQL Serveru. Například: C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData. Název by měl být zadán ve formátu UNC.

Pro Azure SQL Database použijte \\<storage_account>.file.core.windows.net\<share>.

[ @trusted = ] N'trusted'

@trusted je zastaralá a poskytuje se pouze pro zpětnou kompatibilitu. @trusted je nvarchar(5) s výchozím nastavením false. Nastavení tohoto parametru na cokoli, ale false výsledkem je chyba.

[ @encrypted_password = ] encrypted_password

Nastavení tohoto parametru již není podporováno. @encrypted_password je bit s výchozím nastavením 0. Nastavením tohoto parametru dojde k 1 chybě.

[ @thirdparty_flag = ] thirdparty_flag

Určuje, kdy je vydavatel SQL Server. @thirdparty_flag je bit a může to být jedna z následujících hodnot.

Hodnota Description
0 (výchozí) Databáze SQL Serveru.
1 Databáze jiná než SQL Server.

[ @publisher_type = ] N'publisher_type'

Určuje typ vydavatele, pokud publisher není SQL Server. @publisher_type je sysname a může to být jedna z následujících hodnot.

Hodnota Description
MSSQLSERVER (výchozí) Určuje vydavatele SQL Serveru.
ORACLE Určuje standardní vydavatele Oracle.
ORACLE GATEWAY Určuje vydavatele Oracle Gateway.

Další informace o rozdílech mezi vydavatelem Oracle a vydavatelem Oracle Gateway naleznete v tématu Konfigurace vydavatele Oracle.

[ @storage_connection_string = ] N'storage_connection_string'

Vyžaduje se pro Azure SQL Database. @storage_connection_string je nvarchar(255) s výchozím nastavením NULL. V části Nastavení úložiště >použijte přístupový klíč z webu Azure Portal.

Poznámka:

Databáze vydavatele a distributora ve službě Azure SQL Database vyžadují službu SQL Managed Instance. Další informace najdete v tématu Replikace do služby Azure SQL Database.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

sp_adddistpublisher používá se replikací snímků, transakční replikací a slučovací replikací.

Examples

-- 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'AdventureWorks2022'; 

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

Povolení

Spustit můžou pouze členové pevné role serveru sp_adddistpublisher .