Freigeben über


sp_addscriptexec (Transact-SQL)

Gilt für: SQL Server

Stellt ein Transact-SQL-Skript (.sql Datei) für alle Abonnenten einer Publikation bereit. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard.

[ @scriptfile = ] N'scriptfile'

Der vollständige Pfad zur SQL-Skriptdatei. @scriptfile ist nvarchar(4000), ohne Standard.

[ @skiperror = ] skiperror

Zeigt an, ob der Verteilungs- oder Merge-Agent beendet werden soll, wenn ein Fehler bei der Skriptausführung festgestellt wird. @skiperror ist bit, mit einem Standardwert von 0.

  • 0 = der Agent stoppt.
  • 1 = Der Agent setzt das Skript fort und ignoriert den Fehler.

[ @publisher = ] N'publisher'

Gibt einen Nicht-SQL Server-Herausgeber an. @publisher ist "sysname" mit der Standardeinstellung "NULL.

@publisher sollte beim Veröffentlichen aus einem SQL Server-Herausgeber nicht verwendet werden.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_addscriptexec wird in der Transaktionsreplikation und der Seriendruckreplikation verwendet.

sp_addscriptexec wird nicht für die Snapshotreplikation verwendet.

Für die Verwendung sp_addscriptexecmuss das SQL Server-Dienstkonto Über Lese- und Schreibberechtigungen für den Speicherort der Momentaufnahme und Leseberechtigungen für den Speicherort verfügen, an dem skripts gespeichert sind.

Das sqlcmd-Hilfsprogramm wird verwendet, um das Skript beim Abonnenten auszuführen, und das Skript wird im Sicherheitskontext ausgeführt, der vom Verteilungs-Agent oder Merge-Agent beim Herstellen einer Verbindung mit der Abonnementdatenbank verwendet wird. Wenn der Agent auf einer früheren Version von SQL Server ausgeführt wird, wird das osql Utility anstelle des sqlcmd-Hilfsprogramms verwendet.

sp_addscriptexec ist hilfreich beim Anwenden von Skripts auf Abonnenten und verwendet das sqlcmd-Hilfsprogramm , um den Inhalt des Skripts auf den Abonnenten anzuwenden. Da Abonnentenkonfigurationen jedoch variieren können, können Skripts, die vor dem Veröffentlichen in Publisher getestet wurden, weiterhin Fehler bei einem Abonnenten verursachen. @skiperror ermöglicht das Verteilungs-Agent oder Merge-Agent Fehler zu ignorieren und fortzufahren. Verwenden Sie das sqlcmd-Hilfsprogramm , um Skripts vor dem Ausführen sp_addscriptexeczu testen.

Hinweis

Übersprungene Fehler werden weiterhin im Agent-Verlauf protokolliert, um referenziert zu werden.

Wird sp_addscriptexec verwendet, um eine Skriptdatei für Publikationen zu veröffentlichen, die FTP für die Snapshotübermittlung verwenden, wird nur für SQL Server-Abonnenten unterstützt.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_addscriptexec.