Процедура sp_register_custom_scripting (Transact-SQL)
При репликации транзакций допустимо заменять одну или несколько хранимых процедур по умолчанию пользовательскими. После изменения схемы реплицируемой таблицы эти процедуры создаются снова. Процедура sp_register_custom_scripting регистрирует хранимую процедуру или файл скрипта Transact-SQL, выполняющиеся при изменении схемы для создания определения новой пользовательской хранимой процедуры репликации. Эта новая пользовательская хранимая процедура должна отражать новую схему таблицы. Процедура sp_register_custom_scripting выполняется на стороне издателя для базы данных публикации, а зарегистрированный файл скрипта или хранимая процедура выполняется на стороне подписчика при изменении схемы.
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_register_custom_scripting [ @type = ] 'type'
[ @value = ] 'value'
[ , [ @publication = ] 'publication' ]
[ , [ @article = ] 'article' ]
Аргументы
[ @type = ] 'type'
Тип регистрируемой пользовательской хранимой процедуры или скрипта. Аргумент type имеет тип varchar(16), не имеет значения по умолчанию и может принимать одно из следующих значений.Значение
Описание
insert
Зарегистрированная пользовательская хранимая процедура, выполняющаяся при репликации инструкции INSERT.
update
Зарегистрированная пользовательская хранимая процедура, выполняющаяся при репликации инструкции UPDATE.
delete
Зарегистрированная пользовательская хранимая процедура, выполняющаяся при репликации инструкции DELETE.
custom_script
Скрипт, выполняющийся в конце триггера языка DDL.
[ @value= ] 'value'
Имя хранимой процедуры или имя и полностью определенный путь к файлу скрипта Transact-SQL для регистрации. Аргумент value имеет тип nvarchar(1024) и не имеет значения по умолчанию.Примечание Если аргументу value присвоить значение NULL, произведенная ранее регистрация скрипта будет отменена, что эквивалентно выполнению процедуры sp_unregister_custom_scripting.
Если значение аргумента type — custom_script, ожидается имя и полный путь к файлу скрипта Transact-SQL. Иначе value должно быть именем регистрируемой хранимой процедуры.
[ @publication= ] 'publication'
Имя публикации, для которой регистрируется пользовательская хранимая процедура или скрипт. Аргумент publication имеет тип sysname и значение по умолчанию NULL.[ @article= ] 'article'
Имя статьи, для которой регистрируется пользовательская хранимая процедура или скрипт. Аргумент article имеет тип sysname и значение по умолчанию NULL.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_register_custom_scripting используется в репликации моментальных снимков и транзакций.
Эта хранимая процедура должна выполняться до внесения изменений в схему реплицируемой таблицы. Дополнительные сведения об использовании хранимых процедур см. в разделе Повторное создание пользовательских процедур транзакций для отражения изменений схем.
Разрешения
Только члены предопределенной роли сервера sysadmin, члены предопределенной роли базы данных db_owner или db_ddladmin могут выполнять процедуру sp_register_custom_scripting.