sys.sp_addscriptexec (Transact-SQL)

Van toepassing op:SQL Server

Plaatst een Transact-SQL script (.sql bestand) naar alle abonnees van een publicatie. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.

Transact-SQL syntaxis-conventies

Syntax

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

Arguments

[ @publication = ] N'publicatie'

De naam van de publicatie. @publication is sysname, zonder standaard.

[ @scriptfile = ] N'scriptfile'

Het volledige pad naar het SQL-scriptbestand. @scriptfile is nvarchar(4000), zonder standaard.

[ @skiperror = ] skiperror

Geeft aan of de Distribution Agent of Merge Agent moet stoppen wanneer er een fout wordt gevonden tijdens scriptverwerking. @skiperror is bit, met als standaard .0

  • 0 = de agent stopt.
  • 1 = de agent zet het script voort en negeert de fout.

[ @publisher = ] N'uitgever'

Hiermee geeft u een niet-SQL Server-uitgever. @publisher is sysname, met als standaard NULL.

@publisher mag niet worden gebruikt bij het publiceren vanuit een SQL Server Publisher.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_addscriptexec wordt gebruikt bij transactionele replicatie en merge-replicatie.

sp_addscriptexec wordt niet gebruikt voor snapshot-replicatie.

Om te gebruiken sp_addscriptexecmoet het SQL Server-serviceaccount lees- en schrijfrechten hebben op de snapshotlocatie en leesrechten op de locatie waar scripts worden opgeslagen.

De sqlcmd-tool wordt gebruikt om het script uit te voeren bij de abonnee, en het script wordt uitgevoerd in de beveiligingscontext die wordt gebruikt door de Distribution Agent of Merge Agent bij het verbinden met de abonnementsdatabase. Wanneer de agent wordt uitgevoerd op een eerdere versie van SQL Server, wordt de osql Utility gebruikt in plaats van de sqlcmd-hulp.

sp_addscriptexec is nuttig bij het toepassen van scripts op abonnees en gebruikt de sqlcmd-hulplijn om de inhoud van het script toe te passen op de abonnee. Omdat abonneeconfiguraties kunnen variëren, kunnen scripts die vóór het plaatsen naar de Publisher worden getest nog steeds fouten veroorzaken bij een abonnee. @skiperror maakt het mogelijk om fouten te Distribution Agent of Merge Agent negeren en door te gaan. Gebruik de sqlcmd-tool om scripts te testen voordat je het uitvoert sp_addscriptexec.

Note

Overgeslagen fouten blijven ter referentie in de agentgeschiedenis worden geregistreerd.

Het plaatsen sp_addscriptexec van een scriptbestand voor publicaties via FTP voor snapshotlevering wordt alleen ondersteund voor SQL Server-abonnees.

Permissions

Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_addscriptexec.