sp_addscriptexec (Transact-SQL)
Область применения: SQL Server
Публикует скрипт Transact-SQL (.sql
файл) всем подписчикам публикации. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_addscriptexec
[ @publication = ] N'publication'
, [ @scriptfile = ] N'scriptfile'
[ , [ @skiperror = ] skiperror ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Аргументы
[ @publication = ] N'publication'
Имя публикации. @publication — sysname без значения по умолчанию.
[ @scriptfile = ] N'scriptfile'
Полный путь к файлу скрипта SQL. @scriptfile — nvarchar(4000), без значения по умолчанию.
[ @skiperror = ] skiperror
Показывает, должен ли агент распространителя или агент слияния останавливаться при возникновении ошибки во время обработки скрипта. @skiperror бит с значением по умолчанию0
.
0
= агент останавливается.1
= агент продолжает скрипт и игнорирует ошибку.
[ @publisher = ] N'publisher'
Указывает издателя, отличного от SQL Server. @publisher — sysname с значением по умолчаниюNULL
.
@publisher не следует использовать при публикации с издателя SQL Server.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
sp_addscriptexec
используется в репликации транзакций и репликации слиянием.
sp_addscriptexec
не используется для репликации моментальных снимков.
Чтобы использовать sp_addscriptexec
, учетная запись службы SQL Server должна иметь разрешения на чтение и запись в расположении моментального снимка и разрешения на чтение в расположении, где хранятся скрипты.
Программа sqlcmd используется для выполнения скрипта на подписчике, а скрипт выполняется в контексте безопасности, используемом агент распространения или агент слияния при подключении к базе данных подписки. При запуске агента на предыдущей версии SQL Server программа osql используется вместо служебной программы sqlcmd.
sp_addscriptexec
полезно применять скрипты к подписчикам и использовать служебную программу sqlcmd для применения содержимого скрипта к подписчику. Тем не менее, поскольку конфигурации подписчиков могут отличаться, скрипты, проверенные перед публикацией издателю, могут по-прежнему вызвать ошибки на подписчике. @skiperror позволяет агент распространения или агент слияния игнорировать ошибки и продолжать работу. Используйте служебную программу sqlcmd для тестирования скриптов перед выполнениемsp_addscriptexec
.
Примечание.
Пропущенные ошибки продолжают регистрироваться в журнале агента для справки.
Использование sp_addscriptexec
для публикации файла скрипта для публикаций с помощью FTP для доставки моментальных снимков поддерживается только для подписчиков SQL Server.
Разрешения
Могут выполняться только члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.sp_addscriptexec