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


sp_addscriptexec (Transact-SQL)

Отсылает SQL-сценарий (SQL-файл) всем подписчикам публикации. Эта хранимая процедура выполняется в базе данных публикации на издателе.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_addscriptexec [ @publication = ] publication
    [ , [ @scriptfile = ] 'scriptfile' ]
    [ , [ @skiperror = ] 'skiperror' ]
    [ , [ @publisher = ] 'publisher' ]

Аргументы

  • [ @publication= ] 'publication'
    Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.

  • [ @scriptfile= ] 'scriptfile'
    Полный путь к файлу сценария SQL. Аргумент scriptfile имеет тип nvarchar(4000) и не имеет значения по умолчанию.

  • [ @skiperror= ] 'skiperror'
    Показывает, должен ли агент распространителя или агент слияния останавливаться при возникновении ошибки во время обработки сценария. Аргумент SkipError имеет тип bit и значение по умолчанию 0.

    0 = агент остановится.

    1 = агент пропустит ошибку и продолжит выполнение сценария.

  • [ @publisher= ] 'издатель'
    Задает издатель, отличный от Microsoft SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

    Аргумент publisher не должен использоваться при публикации данных издателя SQL Server.

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

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Процедура sp_addscriptexec применяется при репликации транзакций и репликации слиянием.

Процедура sp_addscriptexec не используется для репликации моментальных снимков.

Для применения sp_addscriptexec учетная запись службы SQL Server должна обладать разрешениями на считывание и запись в расположении моментального снимка, а также разрешениями на считывание в расположении, где хранятся сценарии.

Для выполнения сценария на стороне подписчика используется программа sqlcmd, при этом сценарий выполняется в контексте безопасности, который используется агентом распространителя или агентом слияния при подключении к базе данных подписки. Если агент выполняется на предыдущей версии SQL Server, вместо программы sqlcmd используется osql.

Хранимую процедуру sp_addscriptexec можно использовать для применения сценариев к подписчикам. При этом содержимое сценария применяется к подписчику с помощью программы sqlcmd. Однако поскольку конфигурации подписчика могут различаться, сценарии, протестированные до отправки к издателю, могут по-прежнему вызывать ошибки у подписчика. Инструкция skiperror позволяет агенту распространителя или агенту слияния пропускать ошибки и продолжать работу. Протестировать сценарии перед запуском процедуры sp_addscriptexec можно при помощи программы sqlcmd.

ПримечаниеПримечание

Пропущенные ошибки по-прежнему будут фиксироваться в журнале агента для последующей справки.

Отправка файла сценария с помощью хранимой процедуры sp_addscriptexec для публикаций, использующих FTP для доставки моментальных снимков, поддерживается только для подписчиков Microsoft SQL Server.

Разрешения

Только элементы предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner могут выполнять хранимую процедуру sp_addscriptexec.