Freigeben über


sp_register_custom_scripting (Transact-SQL)

Gilt für: SQL Server

Mithilfe der Replikation ist es möglich, mindestens eine der bei der Transaktionsreplikation verwendeten Standardprozeduren durch benutzerdefinierte gespeicherte Prozeduren zu ersetzen. Wenn an einer replizierten Tabelle eine Schemaänderung vorgenommen wird, werden diese gespeicherten Prozeduren neu erstellt.

sp_register_custom_scripting registriert eine gespeicherte Prozedur oder Transact-SQL-Skriptdatei, die ausgeführt wird, wenn eine Schemaänderung eintritt, um die Definition für eine neue benutzerdefinierte gespeicherte Prozedur zu skripten. Diese neue, benutzerdefinierte gespeicherte Prozedur sollte das neue Schema für die Tabelle wiedergeben. sp_register_custom_scripting wird bei Publisher in der Publikationsdatenbank ausgeführt, und die registrierte Skriptdatei oder gespeicherte Prozedur wird beim Abonnenten ausgeführt, wenn eine Schemaänderung auftritt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @type = ] 'type'

Der Typ der benutzerdefinierten gespeicherten Prozedur oder des Skripts, die registriert werden. @type ist varchar(16) und kann einer der folgenden Werte sein.

Wert Beschreibung
insert Registrierte benutzerdefinierte gespeicherte Prozedur wird ausgeführt, wenn eine INSERT Anweisung repliziert wird.
update Registrierte benutzerdefinierte gespeicherte Prozedur wird ausgeführt, wenn eine UPDATE Anweisung repliziert wird.
delete 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 = ] N'value'

Name einer gespeicherten Prozedur oder eines Namens und vollqualifizierten Pfads zur Transact-SQL-Skriptdatei, die registriert wird. @value ist nvarchar(2048), ohne Standard.

Die Angabe NULL für @value hebt die Registrierung eines zuvor registrierten Skripts auf, das mit der Ausführung sp_unregister_custom_scripting identisch ist.

Wenn der Wert von @type custom_script ist, wird der Name und der vollständige Pfad einer Transact-SQL-Skriptdatei erwartet. Andernfalls muss @value der Name einer registrierten gespeicherten Prozedur sein.

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung, für die die benutzerdefinierte gespeicherte Prozedur bzw. das Skript registriert wird. @publication ist "sysname" mit der Standardeinstellung "NULL.

[ @article = ] N'article'

Der Name des Artikels, für den die benutzerdefinierte gespeicherte Prozedur bzw. das Skript registriert wird. @article ist "sysname" mit der Standardeinstellung "NULL.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_register_custom_scripting wird in der Momentaufnahme- und Transaktionsreplikation verwendet.

Diese gespeicherte Prozedur sollte ausgeführt werden, bevor eine Schemaänderung an einer replizierten Tabelle vorgenommen wird. Weitere Informationen zur Verwendung dieser gespeicherten Prozedur finden Sie in den Transaktionsartikeln – Regenerate to Reflect Schema Changes.For more information about using this stored procedure, see Transactional Articles - Regenerate to Reflect Schema Changes.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin , die db_owner feste Datenbankrolle oder die db_ddladmin festen Datenbankrolle können ausgeführt werden sp_register_custom_scripting.