sp_addpublication_snapshot (Transact-SQL)

Erstellt den Snapshot-Agent für die angegebene Veröffentlichung. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

SicherheitshinweisSicherheitshinweis

Bei der Konfiguration 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. Sie sollten die Verbindung zwischen dem Verleger und seinem Remoteverteiler verschlüsseln, bevor diese gespeicherte Prozedur ausgeführt wird. Weitere Informationen finden Sie unter Verschlüsseln von Verbindungen zu SQL Server.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung. publication ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @frequency_type=] frequency_type
    Die Häufigkeit für die Ausführung des Snapshot-Agents. frequency_type ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Einmal

    4 (Standardwert)

    Täglich

    8

    Wöchentlich

    16

    Monatlich

    32

    Monatlich, relativ zum Häufigkeitsintervall.

    64

    Wenn der SQL Server-Agent gestartet wird.

    128

    Ausführen, wenn sich der Computer im Leerlauf befindet

  • [ @frequency_interval=] frequency_interval
    Der Wert, der auf die durch frequency_type festgelegte Häufigkeit angewendet werden soll. frequency_interval ist vom Datentyp int und kann einen der folgenden Werte annehmen.

    Wert für frequency_type

    Auswirkung auf frequency_interval

    1

    frequency_interval wird nicht verwendet.

    4 (Standardwert)

    Alle frequency_interval Tage; der Standard ist täglich.

    8

    frequency_interval kann einen oder mehrere der folgenden Werte aufweisen (verknüpft mit dem logischen Operator | (Bitweises OR)):

    1 = Sonntag |

    2 = Montag |

    4 = Dienstag |

    8 = Mittwoch |

    16 = Donnerstag |

    32 = Freitag |

    64 = Samstag

    16

    Am frequency_interval-Tag des Monats.

    32

    frequency_interval ist einer der folgenden Werte:

    1 = Sonntag |

    2 = Montag |

    3 = Dienstag |

    4 = Mittwoch |

    5 = Donnerstag |

    6 = Freitag |

    7 = Samstag |

    8 = Tag |

    9 = Arbeitstag |

    10 = Wochenendtag

    64

    frequency_interval wird nicht verwendet.

    128

    frequency_interval wird nicht verwendet.

  • [ @frequency_subday=] frequency_subday
    Die Einheit für freq_subday_interval. frequency_subday ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Einmal

    2

    Sekunde

    4 (Standardwert)

    Minute

    8

    Stunde

  • [ @frequency_subday_interval=] frequency_subday_interval
    Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert 5 (alle 5 Minuten).

  • [ @frequency_relative_interval=] frequency_relative_interval
    Das Datum, an dem der Snapshot-Agent ausgeführt wird. frequency_relative_interval ist vom Datentyp int und hat den Standardwert 1.

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_start_date = ] active_start_date
    Das Datum, an dem der Snapshot-Agent zum ersten Mal geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_start_date ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_end_date = ] active_end_date
    Das Datum, ab dem der Snapshot-Agent nicht mehr geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_end_date ist vom Datentyp int und hat den Standardwert 99991231, womit der 31. Dezember 9999 gemeint ist.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Die Tageszeit, zu der der Snapshot-Agent zum ersten Mal geplant ist. Dabei wird das Format HHMMSS verwendet. active_start_time_of_day ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Die Tageszeit, ab der der Snapshot-Agent nicht mehr geplant ist. Dabei wird das Format HHMMSS verwendet. active_end_time_of_day ist vom Datentyp int und hat den Standardwert 235959, womit 23:59:59 Uhr des 24-Stunden-Systems gemeint ist.

  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    Der Name eines vorhandenen Snapshot-Agent-Auftrags, wenn ein vorhandener Auftrag verwendet wird. snapshot_agent_name ist vom Datentyp nvarchar(100) und hat den Standardwert NULL. Dieser Parameter dient der internen Verwendung und sollte beim Erstellen einer neuen Veröffentlichung nicht angegeben werden. Wenn snapshot_agent_name angegeben wird, müssen job_login und job_password den Wert NULL haben.

  • [ @publisher_security_mode= ] publisher_security_mode
    Der vom Agent beim Herstellen der Verbindung mit dem Verleger verwendete Sicherheitsmodus. publisher_security_mode ist vom Datentyp smallint und hat den Standardwert 1. 0 legt die SQL Server-Authentifizierung fest und 1 die Windows-Authentifizierung. Für Nicht-SQL Server-Verleger muss der Wert 0 angegeben sein. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

  • [ @publisher_login= ] 'publisher_login'
    Der zum Herstellen der Verbindung mit dem Verleger verwendete Anmeldename. publisher_login ist vom Datentyp sysname und hat den Standardwert NULL. publisher_login muss angegeben werden, wenn publisher_security_mode den Wert 0 hat. Wenn publisher_login den Wert NULL und publisher_security_mode den Wert 1 hat, wird das in job_login angegebene Windows-Konto für die Verbindung mit dem Verleger verwendet.

  • [ @publisher_password= ] 'publisher_password'
    Das zum Herstellen der Verbindung mit dem Verleger verwendete Kennwort. publisher_password ist vom Datentyp sysname und hat den Standardwert NULL.

    SicherheitshinweisSicherheitshinweis

    Authentifizierungsinformationen sollten nicht in Skriptdateien gespeichert werden. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.

  • [ @job_login= ] 'job_login'
    Der Anmeldename für das Windows-Konto, unter dem der Agent ausgeführt wird. job_login ist vom Datentyp nvarchar(257) und hat den Standardwert NULL. Dieses Windows-Konto wird für alle Agent-Verbindungen mit dem Verteiler verwendet. Dieser Parameter muss beim Erstellen eines neuen Snapshot-Agentauftrags angegeben werden.

    HinweisHinweis

    Bei Nicht-SQL Server-Verlegern muss es sich dabei um den Anmeldenamen handeln, der in sp_adddistpublisher (Transact-SQL) festgelegt ist.

  • [ @job_password= ] 'job_password'
    Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. job_password ist vom Datentyp sysname und hat keinen Standardwert. Dieser Parameter muss beim Erstellen eines neuen Snapshot-Agentauftrags angegeben werden.

    SicherheitshinweisSicherheitshinweis

    Authentifizierungsinformationen sollten nicht in Skriptdateien gespeichert werden. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.

  • [ @publisher= ] 'publisher'
    Gibt einen Nicht-SQL Server-Verleger an. publisher ist ein Wert vom Datentyp sysname und besitzt den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht verwendet werden, wenn ein Snapshot-Agent auf einem SQL Server-Verleger erstellt wird.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpublication_snapshot wird bei der Snapshotreplikation, Transaktionsreplikation und Mergereplikation verwendet.

Beispiel

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addpublication_snapshot ausführen.