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.
См. также
Справочник
Системные хранимые процедуры (Transact-SQL)
Другие ресурсы
How to: Execute Scripts During Synchronization (Replication Transact-SQL Programming)
Синхронизация данных