sp_addpublication_snapshot (Transact-SQL)sp_addpublication_snapshot (Transact-SQL)

Gilt für: JaSQL Server JaAzure SQL-Datenbank (nur verwaltete Instanz) NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Erstellt den Momentaufnahme-Agent für die angegebene Veröffentlichung.Creates the Snapshot Agent for the specified publication. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungs Datenbank ausgeführt.This stored procedure is executed at the Publisher on the publication database.

Wichtig

Beim Konfigurieren eines Verlegers mit einem Remoteverteiler werden die Werte, die für alle Parameter, einschließlich job_login und job_password, bereitgestellt werden, als Nur-Text an den Verteiler gesendet.When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including job_login and job_password, are sent to the Distributor as plain text. Sie sollten die Verbindung zwischen dem Verleger und dem zugehörigen Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen.You should encrypt the connection between the Publisher and its remote Distributor before executing this stored procedure. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen zur Datenbank-Engine (SQL Server-Konfigurations-Manager).For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
sp_addpublication_snapshot [ @publication= ] 'publication'  
    [ , [ @frequency_type= ] frequency_type ]  
    [ , [ @frequency_interval= ] frequency_interval ]  
    [ , [ @frequency_subday= ] frequency_subday ]  
    [ , [ @frequency_subday_interval= ] frequency_subday_interval ]  
    [ , [ @frequency_relative_interval= ] frequency_relative_interval ]  
    [ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]  
    [ , [ @active_start_date= ] active_start_date ]  
    [ , [ @active_end_date= ] active_end_date ]  
    [ , [ @active_start_time_of_day= ] active_start_time_of_day ]  
    [ , [ @active_end_time_of_day= ] active_end_time_of_day ]  
    [ , [ @snapshot_job_name = ] 'snapshot_agent_name' ]  
    [ , [ @publisher_security_mode = ] publisher_security_mode ]  
    [ , [ @publisher_login = ] 'publisher_login' ]  
    [ , [ @publisher_password = ] 'publisher_password' ]   
    [ , [ @job_login = ] 'job_login' ]  
    [ , [ @job_password = ] 'job_password' ]  
    [ , [ @publisher = ] 'publisher' ]  

ArgumenteArguments

[ @publication = ] 'publication'Der Name der Veröffentlichung.[ @publication = ] 'publication' Is the name of the publication. Publication ist vom Datentyp vom Datentyp sysnameund hat keinen Standardwert.publication is sysname, with no default.

[ @frequency_type = ] frequency_typeDie Häufigkeit, mit der die Momentaufnahmen-Agent ausgeführt wird.[ @frequency_type = ] frequency_type Is the frequency with which the Snapshot Agent is executed. frequency_type ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_type is int, and can be one of the following values.

WertValue DescriptionDescription
11 Einmal.Once.
4 (Standard)4 (default) Tä.Daily.
88 WöchentlichWeekly.
1616 MonatlichMonthly.
3232 Monatlich, relativ zum Häufigkeitsintervall.Monthly, relative to the frequency interval.
6464 Wenn der SQL ServerSQL Server-Agent gestartet wird.When SQL ServerSQL Server Agent starts.
128128 Ausführen, wenn sich der Computer im Leerlauf befindetRun when the computer is idle

[ @frequency_interval = ] frequency_intervalDer Wert, der auf die von frequency_typefestgelegte Häufigkeit angewendet werden soll.[ @frequency_interval = ] frequency_interval Is the value to apply to the frequency set by frequency_type. frequency_interval ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_interval is int, and can be one of the following values.

Wert für frequency_typeValue of frequency_type Auswirkung auf frequency_intervalEffect on frequency_interval
11 frequency_interval wird nicht verwendet.frequency_interval is unused.
4 (Standard)4 (default) Alle frequency_interval Tage, der Standardwert ist täglich.Every frequency_interval days, with a default of daily.
88 frequency_interval ist eine oder mehrere der folgenden (kombiniert mit einem | logischen Operator (bitweiser or) ):frequency_interval is one or more of the following (combined with a | (Bitwise OR) logical operator):

1 = Sonntag|1 = Sunday |

2 = Montag|2 = Monday |

4 = Dienstag|4 = Tuesday |

8 = Mittwoch|8 = Wednesday |

16 = Donnerstag|16 = Thursday |

32 = Freitag|32 = Friday |

64 = Samstag64 = Saturday
1616 Am frequency_interval Tag des Monats.On the frequency_interval day of the month.
3232 frequency_interval ist einer der folgenden:frequency_interval is one of the following:

1 = Sonntag|1 = Sunday |

2 = Montag|2 = Monday |

3 = Dienstag|3 = Tuesday |

4 = Mittwoch|4 = Wednesday |

5 = Donnerstag|5 = Thursday |

6 = Freitag|6 = Friday |

7 = Samstag|7 = Saturday |

8 = Tag|8 = Day |

9 = Wochentag|9 = Weekday |

10 = Wochenendtag10 = Weekend day
6464 frequency_interval wird nicht verwendet.frequency_interval is unused.
128128 frequency_interval wird nicht verwendet.frequency_interval is unused.

[ @frequency_subday = ] frequency_subdayIst die Einheit für freq_subday_interval.[ @frequency_subday = ] frequency_subday Is the unit for freq_subday_interval. frequency_subday ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_subday is int, and can be one of these values.

WertValue DescriptionDescription
11 EinmalOnce
22 ZweimalSecond
4 (Standard)4 (default) MinuteMinute
88 HourHour

[ @frequency_subday_interval = ] frequency_subday_intervalDas Intervall für frequency_subday.[ @frequency_subday_interval = ] frequency_subday_interval Is the interval for frequency_subday. frequency_subday_interval ist vom Datentyp intund hat den Standardwert 5. Dies bedeutet alle 5 Minuten.frequency_subday_interval is int, with a default of 5, which means every 5 minutes.

[ @frequency_relative_interval = ] frequency_relative_intervalDas Datum, an dem die Momentaufnahmen-Agent ausgeführt wird.[ @frequency_relative_interval = ] frequency_relative_interval Is the date the Snapshot Agent runs. frequency_relative_interval ist vom Datentyp intund hat den Standardwert 1.frequency_relative_interval is int, with a default of 1.

[ @frequency_recurrence_factor = ] frequency_recurrence_factorDer von frequency_typeverwendete Wiederholungs Faktor.[ @frequency_recurrence_factor = ] frequency_recurrence_factor Is the recurrence factor used by frequency_type. frequency_recurrence_factor ist vom Datentyp intund hat den Standardwert 0.frequency_recurrence_factor is int, with a default of 0.

[ @active_start_date = ] active_start_dateDas Datum, an dem die Momentaufnahmen-Agent zum ersten Mal geplant ist, formatiert als YYYYMMDD.[ @active_start_date = ] active_start_date Is the date when the Snapshot Agent is first scheduled, formatted as YYYYMMDD. active_start_date ist vom Datentyp intund hat den Standardwert 0.active_start_date is int, with a default of 0.

[ @active_end_date = ] active_end_dateDas Datum, an dem der Momentaufnahmen-Agent nicht mehr geplant ist, formatiert als YYYYMMDD.[ @active_end_date = ] active_end_date Is the date when the Snapshot Agent stops being scheduled, formatted as YYYYMMDD. active_end_date ist vom Datentyp int. der Standardwert ist 99991231, d. h. der 31. Dezember 9999.active_end_date is int, with a default of 99991231, which means December 31, 9999.

[ @active_start_time_of_day = ] active_start_time_of_dayDie Tageszeit, zu der die Momentaufnahmen-Agent zum ersten Mal geplant ist. dabei wird das Format HHMMSS verwendet.[ @active_start_time_of_day = ] active_start_time_of_day Is the time of day when the Snapshot Agent is first scheduled, formatted as HHMMSS. active_start_time_of_day ist vom Datentyp intund hat den Standardwert 0.active_start_time_of_day is int, with a default of 0.

[ @active_end_time_of_day = ] active_end_time_of_dayDie Tageszeit, zu der die Momentaufnahmen-Agent nicht mehr geplant ist. dabei wird das Format HHMMSS verwendet.[ @active_end_time_of_day = ] active_end_time_of_day Is the time of day when the Snapshot Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_day ist vom Datentyp int. der Standardwert ist 235959. der Wert ist 11:59:59 Uhr.active_end_time_of_day is int, with a default of 235959, which means 11:59:59 P.M. gemessen auf einem 24-Stunden-Format.as measured on a 24-hour clock.

[ @snapshot_job_name = ] 'snapshot_agent_name'Der Name eines vorhandenen Momentaufnahmen-Agent Auftrags namens, wenn ein vorhandener Auftrag verwendet wird.[ @snapshot_job_name = ] 'snapshot_agent_name' Is the name of an existing Snapshot Agent job name if an existing job is being used. snapshot_agent_name ist vom Datentyp nvarchar (100) und hat den Standardwert NULL.snapshot_agent_name is nvarchar(100) with a default value of NULL. Dieser Parameter dient der internen Verwendung und sollte beim Erstellen einer neuen Veröffentlichung nicht angegeben werden.This parameter is for internal use and should not be specified when creating a new publication. Wenn snapshot_agent_name angegeben wird, müssen job_login und job_password NULL sein.If snapshot_agent_name is specified, then job_login and job_password must be NULL.

[ @publisher_security_mode = ] publisher_security_modeDer Sicherheitsmodus, der vom Agent beim Herstellen einer Verbindung mit dem Verleger verwendet wird.[ @publisher_security_mode = ] publisher_security_mode Is the security mode used by the agent when connecting to the Publisher. publisher_security_mode ist vom Datentyp smallint. der Standardwert ist 1.publisher_security_mode is smallint, with a default of 1. 0 gibt SQL ServerSQL Server die Authentifizierung an, und 1 gibt die Windows-Authentifizierung an.0 specifies SQL ServerSQL Server Authentication, and 1 specifies Windows Authentication. Für nicht- - SQL ServerSQL Server Verleger muss ein Wert von 0 angegeben werden.A value of 0 must be specified for non- SQL ServerSQL Server Publishers. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.When possible, use Windows authentication.

[ @publisher_login = ] 'publisher_login'Der Anmelde Name, der beim Herstellen einer Verbindung mit dem Verleger verwendet wird.[ @publisher_login = ] 'publisher_login' Is the login used when connecting to the Publisher. publisher_login ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.publisher_login is sysname, with a default of NULL. publisher_login muss angegeben werden, wenn publisher_security_mode 0ist.publisher_login must be specified when publisher_security_mode is 0. Wenn publisher_login NULL ist und publisher_security_mode 1 ist, wird das in job_login angegebene Konto verwendet, wenn eineVerbindung mit dem Verleger hergestellt wird.If publisher_login is NULL and publisher_security_mode is 1, then the account specified in job_login will be used when connecting to the Publisher.

[ @publisher_password = ] 'publisher_password'Das Kennwort, das beim Herstellen einer Verbindung mit dem Verleger verwendet wird.[ @publisher_password = ] 'publisher_password' Is the password used when connecting to the Publisher. publisher_password ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.publisher_password is sysname, with a default of NULL.

Wichtig

Speichern Sie keine Authentifizierungsinformationen in Skriptdateien.Do not store authentication information in script files. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.To help improve security, we recommend that you provide login names and passwords at run time.

[ @job_login = ] 'job_login'Der Anmelde Name für das Konto, unter dem der Agent ausgeführt wird.[ @job_login = ] 'job_login' Is the login for the account under which the agent runs. Verwenden Sie auf verwaltete Azure SQL-Datenbank-Instanz ein SQL Server Konto.On Azure SQL Database Managed Instance, use a SQL Server account. job_login ist vom Datentyp nvarchar (257) und hat den Standardwert NULL.job_login is nvarchar(257), with a default of NULL. Dieses Konto wird immer für Agentverbindungen mit dem Verteiler verwendet.This account is always used for agent connections to the Distributor. Sie müssen diesen Parameter angeben, wenn Sie einen neuen Auftrag des Momentaufnahme-Agents erstellen.You must supply this parameter when creating a new Snapshot Agent job.

Hinweis

Bei nicht- SQL ServerSQL Server -Verlegern muss es sich hierbei um denselben Anmelde Namen handeln, der in sp_adddistpublisher (Transact-SQL)angegeben ist.For non- SQL ServerSQL Server Publishers, this must be the same login specified in sp_adddistpublisher (Transact-SQL).

[ @job_password = ] 'job_password'Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird.[ @job_password = ] 'job_password' Is the password for the Windows account under which the agent runs. job_password ist vom Datentyp vom Datentyp sysnameund hat keinen Standardwert.job_password is sysname, with no default. Sie müssen diesen Parameter angeben, wenn Sie einen neuen Auftrag des Momentaufnahme-Agents erstellen.You must supply this parameter when creating a new Snapshot Agent job.

Wichtig

Speichern Sie keine Authentifizierungsinformationen in Skriptdateien.Do not store authentication information in script files. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.To help improve security, we recommend that you provide login names and passwords at run time.

[ @publisher = ] 'publisher'Gibt einen nicht- SQL ServerSQL Server -Verleger an.[ @publisher = ] 'publisher' Specifies a non- SQL ServerSQL Server Publisher. Publisher ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.publisher is sysname, with a default of NULL.

Hinweis

der Verleger sollte nicht verwendet werden, wenn ein Momentaufnahmen-Agent auf SQL ServerSQL Server einem Verleger erstellt wird.publisher should not be used when creating a Snapshot Agent at a SQL ServerSQL Server Publisher.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

HinweiseRemarks

sp_addpublication_snapshot wird bei der Momentaufnahme-, Transaktions-und Mergereplikation verwendet.sp_addpublication_snapshot is used in snapshot replication, transactional replication, and merge replication.

BeispielExample

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

BerechtigungenPermissions

Nur Mitglieder der festen Server Rolle sysadmin oder der festen Daten Bank Rolle db_owner können sp_addpublication_snapshotausführen.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addpublication_snapshot.

Siehe auchSee Also

Create a Publication Create a Publication
Erstellen und Anwenden der Momentaufnahme Create and Apply the Snapshot
sp_addpublication (Transact-SQL) sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL) sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot ((Transact-SQL)) sp_startpublication_snapshot (Transact-SQL)
Gespeicherte Automatisierungsprozeduren (Transact-SQL)Replication Stored Procedures (Transact-SQL)