Condividi tramite


sp_addscriptexec (Transact-SQL)

Invia uno script SQL (file con estensione sql) a tutti i Sottoscrittori di una pubblicazione. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addscriptexec [ @publication = ] publication
    [ , [ @scriptfile = ] 'scriptfile' ]
    [ , [ @skiperror = ] 'skiperror' ]
    [ , [ @publisher = ] 'publisher' ]

Argomenti

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

  • [ @scriptfile= ] 'scriptfile'
    Percorso completo del file script SQL. scriptfile è di tipo nvarchar(4000) e non prevede alcun valore predefinito.

  • [ @skiperror= ] 'skiperror'
    Indica se l'agente di distribuzione o di merge deve essere interrotto in caso di errore durante l'elaborazione dello script. SkipError è di tipo bit e il valore predefinito è 0.

    0 = l'agente verrà interrotto.

    1 = l'agente continua l'esecuzione dello script ignorando l'errore.

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

    Nota

    Non utilizzare publisher per la pubblicazione da un server di pubblicazione SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_addscriptexec viene utilizzata per la replica transazionale e di tipo merge.

sp_addscriptexec non viene utilizzata per la replica snapshot.

Per utilizzare sp_addscriptexec, l'account del servizio SQL Server deve disporre di autorizzazioni di lettura e scrittura per la posizione degli snapshot e di autorizzazioni di lettura per il percorso in cui sono archiviati gli script.

Per l'esecuzione dello script nel Sottoscrittore viene utilizzata l'utilità sqlcmd e lo script viene eseguito nel contesto di protezione utilizzato dall'agente di distribuzione o dall'agente di merge per la connessione al database di sottoscrizione. Quando l'agente viene eseguito in una versione precedente di SQL Server, viene utilizzata l'utilità osql invece di sqlcmd.

La stored procedure sp_addscriptexec risulta utile per l'applicazione di script nei Sottoscrittori. Il contenuto dello script viene applicato tramite sqlcmd. Tuttavia, poiché le configurazioni dei Sottoscrittori sono soggette a variazioni, gli script testati prima dell'invio al server di pubblicazione potrebbero comunque causare errori in un Sottoscrittore. L'argomento skiperror consente di impostare l'agente di distribuzione o di merge in modo da continuare l'esecuzione dello script ignorando gli errori. Utilizzare sqlcmd per testare gli script prima dell'esecuzione di sp_addscriptexec.

Nota

Gli errori ignorati vengono comunque registrati nella cronologia dell'agente a titolo di riferimento.

L'utilizzo di sp_addscriptexec per l'invio di un file script per le pubblicazioni utilizzando FTP per il recapito degli snapshot è supportato solo per Sottoscrittori Microsoft SQL Server.

Autorizzazioni

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