Condividi tramite


sp_addpublication_snapshot (Transact-SQL)

Crea l'agente snapshot per la pubblicazione specificata. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota sulla sicurezzaNota sulla sicurezza

Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per ulteriori informazioni, vedere Abilitazione di connessioni crittografate al Motore di database (Gestione configurazione SQL Server).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @publication=] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [ @frequency_type=] frequency_type
    Frequenza di esecuzione dell'agente snapshot. frequency_type è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Singola occorrenza.

    4 (predefinito)

    Giornaliera.

    8

    Settimanale.

    16

    Mensile.

    32

    Mensile relativa, in base all'intervallo di frequenza.

    64

    All'avvio di SQL Server Agent.

    128

    Quando il computer è inattivo

  • [ @frequency_interval=] frequency_interval
    Valore da applicare alla frequenza impostata da frequency_type. frequency_interval è di tipo int. I valori possibili sono i seguenti.

    Valore di frequency_type

    Effetto su frequency_interval

    1

    frequency_interval non viene utilizzato.

    4 (predefinito)

    Ogni numero di giorni indicato da frequency_interval, con un valore predefinito corrispondente alla frequenza giornaliera.

    8

    frequency_interval corrisponde a uno o più dei valori seguenti (uniti tramite l'operatore logico | (OR bit per bit)):

    1 = Domenica |

    2 = Lunedì |

    4 = Martedì |

    8 = Mercoledì |

    16 = Giovedì |

    32 = Venerdì |

    64 = Sabato

    16

    Il giorno del mese indicato da frequency_interval.

    32

    frequency_interval corrisponde a uno dei valori seguenti:

    1 = Domenica |

    2 = Lunedì |

    3 = Martedì |

    4 = Mercoledì |

    5 = Giovedì |

    6 = Venerdì |

    7 = Sabato |

    8 = Giorno |

    9 = Giorno feriale |

    10 = Giorno festivo

    64

    frequency_interval non viene utilizzato.

    128

    frequency_interval non viene utilizzato.

  • [ @frequency_subday=] frequency_subday
    Unità di freq_subday_interval. frequency_subday è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Una volta sola

    2

    Secondo

    4 (predefinito)

    Minuto

    8

    Ora

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervallo per frequency_subday. frequency_subday_interval è di tipo int e il valore predefinito è 5, che corrisponde a ogni 5 minuti.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Data di esecuzione dell'agente snapshot. frequency_relative_interval è di tipo int e il valore predefinito è 1.

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Fattore di occorrenza utilizzato da frequency_type. frequency_recurrence_factor è di tipo int e il valore predefinito è 0.

  • [ @active_start_date=] active_start_date
    Data della prima esecuzione pianificata dell'agente snapshot, nel formato YYYYMMDD. active_start_date è di tipo int e il valore predefinito è 0.

  • [ @active_end_date=] active_end_date
    Data dell'ultima esecuzione pianificata dell'agente snapshot, nel formato YYYYMMDD. active_end_date è di tipo int e il valore predefinito è 99991231, che corrisponde al 31 dicembre 9999.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Ora del giorno della prima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS. active_start_time_of_day è di tipo int e il valore predefinito è 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Ora del giorno dell'ultima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS. active_end_time_of_day è di tipo int e il valore predefinito è 235959, che corrisponde alle 23.59.59. nel formato 24 ore.

  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    Nome di un processo dell'agente snapshot esistente se viene utilizzato un processo esistente. snapshot_agent_name è nvarchar(100) e il valore predefinito è NULL. Questo parametro è per uso interno e non deve essere specificato per la creazione di una nuova pubblicazione. Se si specifica snapshot_agent_name, il valore di job_login e job_password deve essere NULL.

  • [ @publisher_security_mode= ] publisher_security_mode
    Modalità di sicurezza utilizzata dall'agente per la connessione al server di pubblicazione. publisher_security_mode è di tipo smallint e il valore predefinito è 1. 0 specifica l'autenticazione di SQL Server e 1 l'autenticazione di Windows. Per server di pubblicazione non SQL Server è necessario specificare il valore 0. Se possibile, utilizzare l'autenticazione di Windows.

  • [ @publisher_login= ] 'publisher_login'
    Account di accesso utilizzato per la connessione al server di pubblicazione. publisher_login è di tipo sysname e il valore predefinito è NULL. publisher_login deve essere specificato quando publisher_security_mode è 0. Se publisher_login è NULL e il valore di publisher_security_mode è 1, per la connessione al server di pubblicazione verrà utilizzato l'account di Windows specificato in job_login.

  • [ @publisher_password= ] 'publisher_password'
    Password utilizzata per la connessione al server di pubblicazione. publisher_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non archiviare informazioni di autenticazione in file script. Per migliorare la sicurezza, si consiglia di specificare nomi e password di accesso in fase di esecuzione.

  • [ @job_login= ] 'job_login'
    Account di accesso per l'account di Windows utilizzato per l'esecuzione dell'agente. job_login è di tipo nvarchar(257) e il valore predefinito è NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.

    [!NOTA]

    Per server di pubblicazione non SQL Server, deve corrispondere all'account di accesso specificato in sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    Password dell'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e non prevede alcun valore predefinito. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.

    Nota sulla sicurezzaNota sulla sicurezza

    Non archiviare informazioni di autenticazione in file script. Per migliorare la sicurezza, si consiglia di specificare nomi e password di accesso in fase di esecuzione.

  • [ @publisher= ] 'publisher'
    Specifica un server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Non utilizzare publisher per la creazione di un agente snapshot in un server di pubblicazione SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_addpublication_snapshot viene utilizzata per la replica snapshot, transazionale e di tipo merge.

Esempio

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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_addpublication_snapshot.

Vedere anche

Riferimento

sp_addpublication (Transact-SQL)

sp_changepublication_snapshot (Transact-SQL)

sp_startpublication_snapshot (Transact-SQL)

Stored procedure per la replica (Transact-SQL)

Concetti

Creazione di una pubblicazione

Creare e applicare lo snapshot