Поделиться через


Процедура sp_register_custom_scripting (Transact-SQL)

Область применения: SQL Server

При репликации транзакций допустимо заменять одну или несколько хранимых процедур по умолчанию пользовательскими. После изменения схемы реплицируемой таблицы эти процедуры создаются снова.

sp_register_custom_scripting регистрирует хранимую процедуру или файл скрипта Transact-SQL, который выполняется при изменении схемы для определения новой пользовательской хранимой процедуры. Эта новая пользовательская хранимая процедура должна отражать новую схему таблицы. sp_register_custom_scripting выполняется на издателе в базе данных публикации, а зарегистрированный файл скрипта или хранимая процедура выполняется на подписчике при изменении схемы.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @type = ] 'type'

Тип настраиваемой хранимой процедуры или скрипта, зарегистрированного. @type — varchar(16) и может быть одним из следующих значений.

значение Описание
insert Зарегистрированная пользовательская хранимая процедура выполняется при INSERT репликации инструкции.
update Зарегистрированная пользовательская хранимая процедура выполняется при UPDATE репликации инструкции.
delete Зарегистрированная настраиваемая хранимая процедура выполняется при DELETE репликации инструкции.
custom_script Скрипт, выполняющийся в конце триггера языка DDL.

[ @value = ] N'value'

Имя хранимой процедуры или имени и полный путь к зарегистрированным файлу скрипта Transact-SQL. @value — nvarchar(2048) без значения по умолчанию.

Указание NULL для @value отменяет регистрацию ранее зарегистрированного скрипта, который совпадает с выполнением sp_unregister_custom_scripting.

Если значение @type custom_script, ожидается имя и полный путь к файлу скрипта Transact-SQL. В противном случае @value должно быть именем зарегистрированной хранимой процедуры.

[ @publication = ] N'publication'

Имя публикации, для которой регистрируется пользовательская хранимая процедура или скрипт. @publication — sysname с значением по умолчаниюNULL.

[ @article = ] N'article'

Имя статьи, для которой регистрируется пользовательская хранимая процедура или скрипт. @article — sysname с значением по умолчаниюNULL.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_register_custom_scripting используется в моментальном снимке и репликации транзакций.

Перед изменением схемы в реплицируемую таблицу необходимо выполнить эту хранимую процедуру. Дополнительные сведения об использовании этой хранимой процедуры см. в статьях о транзакциях. Повторное создание для отражения изменений схемы.

Разрешения

Могут выполняться только члены предопределенных ролей сервера sysadmin, предопределенных ролей базы данных db_owner или предопределенных ролей базы данных db_ddladmin.sp_register_custom_scripting