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_addscriptexec
muss 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_addscriptexec
zu 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
.