Freigeben über


sp_register_custom_scripting (Transact-SQL)

Mithilfe der Replikation ist es möglich, eine oder mehrere der bei der Transaktionsreplikation verwendeten Standardprozeduren durch benutzerdefinierte gespeicherte Prozeduren zu ersetzen. Bei Schemaänderungen an einer replizierten Tabelle werden diese gespeicherten Prozeduren neu erstellt. Eine gespeicherte Prozedur oder eine Transact-SQL-Skriptdatei, die beim Auftreten einer Schemaänderung ausgeführt wird und die Definition für eine neue benutzerdefinierte gespeicherte Prozedur ausgibt, wird von sp_register_custom_scripting registriert. Diese neue, benutzerdefinierte gespeicherte Prozedur sollte das neue Schema der Tabelle wiedergeben. sp_register_custom_scripting wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt. Die registrierte Skriptdatei bzw. gespeicherte Prozedur wird auf dem Abonnenten ausgeführt, sobald eine Schemaänderung erfolgt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_register_custom_scripting [ @type  = ] 'type'
    [ @value = ] 'value' 
    [ , [ @publication = ] 'publication' ]
    [ , [ @article = ] 'article' ]

Argumente

  • [ @type = ] 'type'
    Der Typ der benutzerdefinierten gespeicherten Prozedur oder des Skripts, die bzw. das registriert wird. type ist vom Datentyp varchar(16) und hat keinen Standardwert. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    insert

    Die registrierte, benutzerdefinierte gespeicherte Prozedur wird ausgeführt, wenn eine INSERT-Anweisung repliziert wird.

    update

    Die registrierte, benutzerdefinierte gespeicherte Prozedur wird ausgeführt, wenn eine UPDATE-Anweisung repliziert wird.

    delete

    Die registrierte, benutzerdefinierte gespeicherte Prozedur wird ausgeführt, wenn eine DELETE-Anweisung repliziert wird.

    custom_script

    Das Skript wird am Ende des DDL-Triggers (Data Definition Language) ausgeführt.

  • [ @value= ] 'value'
    Der Name einer gespeicherten Prozedur oder der Name und vollqualifizierte Pfad zu der Transact-SQL-Skriptdatei, die registriert wird. value ist vom Datentyp nvarchar(1024) und hat keinen Standardwert.

    HinweisHinweis

    Beim Angeben von NULL für den value-Parameter wird die Registrierung eines zuvor registrierten Skripts aufgehoben. Dies ist gleichbedeutend mit dem Ausführen von sp_unregister_custom_scripting.

    Wenn type den Wert custom_script hat, werden der Name und der vollständige Pfad einer Transact-SQL-Skriptdatei erwartet. Andernfalls muss value der Name einer registrierten gespeicherten Prozedur sein.

  • [ @publication= ] 'publication'
    Der Name der Veröffentlichung, für die die benutzerdefinierte gespeicherte Prozedur bzw. das Skript registriert wird. publication ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @article = ] 'article'
    Der Name des Artikels, für den die benutzerdefinierte gespeicherte Prozedur bzw. das Skript registriert wird. article ist vom Datentyp sysname und hat den Standardwert NULL.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_register_custom_scripting wird bei der Snapshot- und Transaktionsreplikation verwendet.

Diese gespeicherte Prozedur sollte ausgeführt werden, bevor Schemaänderungen an einer replizierten Tabelle vorgenommen werden. Weitere Informationen zum Verwenden dieser gespeicherten Prozedur finden Sie unter Erneutes Generieren von Transaktionsprozeduren zur Erfassung von Schemaänderungen.

Berechtigungen

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