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
.