sp_addscriptexec (Transact-SQL)

Stellt ein SQL-Skript (SQL-Datei) für alle Abonnenten einer Veröffentlichung bereit. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publication= ] 'publication'
    Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @scriptfile= ] 'scriptfile'
    Der vollständige Pfad zur SQL-Skriptdatei. scriptfile ist vom Datentyp nvarchar(4000) und hat keinen Standardwert.

  • [ @skiperror= ] 'skiperror'
    Zeigt an, ob der Verteilungs- oder Merge-Agent beendet werden soll, wenn ein Fehler bei der Skriptausführung festgestellt wird. SkipError ist vom bit-Datentyp und hat den Standardwert 0.

    0 = Der Agent wird angehalten.

    1 = Der Agent setzt die Ausführung des Skripts fort und ignoriert den Fehler.

  • [ @publisher= ] 'publisher'
    Gibt einen Nicht-Microsoft SQL Server-Verleger an. publisher ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht verwendet werden, wenn ein SQL Server-Verleger verwendet wird.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addscriptexec wird bei der Transaktions- und Mergereplikation verwendet.

sp_addscriptexec wird für die Snapshotreplikation nicht verwendet.

Zum Verwenden von sp_addscriptexec muss das SQL Server-Dienstkonto über Lese- und Schreibberechtigungen für den Snapshotspeicherort und Leseberechtigungen für den Ort verfügen, an dem Skripts gespeichert sind.

Das Dienstprogramm sqlcmd wird zum Ausführen des Skripts auf dem Abonnenten verwendet, und das Skript wird in dem Sicherheitskontext ausgeführt, der vom Verteilungs-Agent oder Merge-Agent beim Herstellen einer Verbindung mit der Abonnementdatenbank verwendet wird. Wenn der Agent in einer früheren Version von SQL Server ausgeführt wird, wird das Dienstprogramm osql anstelle von sqlcmd verwendet.

sp_addscriptexec ist bei der Anwendung von Skripts auf Abonnenten hilfreich und verwendet sqlcmd, um den Inhalt des Skripts auf den Abonnenten anzuwenden. Da die Abonnentenkonfiguration jedoch variieren kann, ist es möglich, dass Skripts, die vor der Bereitstellung für den Verleger getestet wurden, zu Fehlern auf einem Abonnenten führen. skiperror bietet die Möglichkeit, dass der Verteilungs- oder der Merge-Agent die Fehler ignorieren und die Ausführung fortsetzen kann. Verwenden Sie sqlcmd, um Skripts zu testen, bevor Sie sp_addscriptexec ausführen.

HinweisHinweis

Ausgelassene Fehler werden aus Referenzgründen weiterhin im Verlauf des Agents protokolliert.

Das Verwenden von sp_addscriptexec zum Bereitstellen einer Skriptdatei für Veröffentlichungen mithilfe von FTP für die Snapshotübermittlung wird nur für Microsoft SQL Server-Abonnenten unterstützt.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addscriptexec ausführen.