sp_addscriptexec (Transact-SQL)

Si applica a: SQL Server

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, senza impostazione predefinita.

[ @scriptfile = ] N'scriptfile'

Percorso completo del file di script SQL. @scriptfile è nvarchar(4000), senza impostazione predefinita.

[ @skiperror = ] skiperror

Indica se l'agente di distribuzione o di merge deve essere arrestato in caso di errore durante l'elaborazione dello script. @skiperror è bit, con il valore predefinito 0.

  • 0 = l'agente si arresta.
  • 1 = l'agente continua lo script e ignora l'errore.

[ @publisher = ] N'publisher'

Specifica un server di pubblicazione non SQL Server. @publisher è sysname, con un valore predefinito .NULL

@publisher non deve essere usato durante la pubblicazione da un server di pubblicazione di SQL Server.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_addscriptexec viene usato nella replica transazionale e nella replica di tipo merge.

sp_addscriptexec non viene usato per la replica snapshot.

Per usare sp_addscriptexec, l'account del servizio SQL Server deve disporre delle autorizzazioni di lettura e scrittura per il percorso dello snapshot e le autorizzazioni di lettura per il percorso in cui sono archiviati gli script.

L'utilità sqlcmd viene usata per eseguire lo script nel Sottoscrittore e lo script viene eseguito nel contesto di sicurezza usato dal agente di distribuzione o agente di merge durante la connessione al database di sottoscrizione. Quando l'agente viene eseguito in una versione precedente di SQL Server, viene usata l'utilità osql anziché l'utilità sqlcmd.

sp_addscriptexecè utile nell'applicazione di script ai sottoscrittori e usa l'utilità sqlcmd per applicare il contenuto dello script al Sottoscrittore. Tuttavia, poiché le configurazioni del Sottoscrittore possono variare, gli script testati prima della pubblicazione nel server di pubblicazione potrebbero comunque causare errori in un Sottoscrittore. @skiperror consente il agente di distribuzione o agente di merge ignorare gli errori e continuare. Usare l'utilità sqlcmd per testare gli script prima di eseguire sp_addscriptexec.

Nota

Gli errori ignorati continuano a essere registrati nella cronologia dell'agente per riferimento.

L'uso sp_addscriptexec di per pubblicare un file di script per le pubblicazioni tramite FTP per il recapito di snapshot è supportato solo per i Sottoscrittori di SQL Server.

Autorizzazioni

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