sys.sp_addscriptexec (Transact-SQL)

Gäller för:SQL Server

Publicerar ett Transact-SQL skript (.sql fil) till alla prenumeranter på en publikation. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @publication = ] N'publication'

Namnet på publikationen. @publication är sysname, utan standard.

[ @scriptfile = ] Inte skriptfil'

Den fullständiga vägen till SQL-skriptfilen. @scriptfile är nvarchar(4000), utan standard.

[ @skiperror = ] skiperror

Anger om Distribution Agent eller Merge Agent ska sluta när ett fel uppstår under skriptbearbetning. @skiperror är bit, med standardvärdet .0

  • 0 = Agenten stannar.
  • 1 = agenten fortsätter skriptet och ignorerar felet.

[ @publisher = ] N'utgivare'

Anger en utgivare som inte är SQL Server. @publisher är sysname, med standardvärdet NULL.

@publisher bör inte användas när man publicerar från en SQL Server Publisher.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_addscriptexec används vid transaktionell replikation och sammanslagningsreplikering.

sp_addscriptexec används inte för snapshot-replikering.

För att använda sp_addscriptexecmåste SQL Server-tjänstekontot ha läs- och skrivbehörighet på snapshot-platsen samt läsbehörigheter på platsen där eventuella skript lagras.

sqlcmd-verktyget används för att köra skriptet på Subscriber, och skriptet körs i säkerhetskontexten som används av Distribution Agent eller Merge Agent när man ansluter till prenumerationsdatabasen. När agenten körs på en tidigare version av SQL Server används osql-verktyget istället för sqlcmd-verktyget.

sp_addscriptexec är användbar för att tillämpa skript på prenumeranter och använder sqlcmd-verktyget för att applicera skriptets innehåll på prenumeranten. Eftersom prenumerationskonfigurationer kan variera kan dock skript som testas innan de postas till Publisher fortfarande orsaka fel på en prenumerant. @skiperror tillåter Distribution Agent eller Merge Agent ignorera fel och fortsätta. Använd sqlcmd-verktyget för att testa skript innan du kör sp_addscriptexec.

Note

Hoppade fel fortsätter att loggas i agenthistoriken som referens.

Att posta sp_addscriptexec en skriptfil för publikationer med FTP för snapshot-leverans stöds endast för SQL Server-prenumeranter.

Permissions

Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addscriptexec.