sp_publication_validation (Transact-SQL)
Запускает запрос на проверку каждой статьи в указанной публикации. Эта хранимая процедура выполняется в базе данных публикации на издателе.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
sp_publication_validation [ @publication = ] 'publication'
[ , [ @rowcount_only = ] type_of_check_requested ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @publisher = ] 'publisher' ]
Аргументы
- [@publication=] **'**publication'
Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.
[@rowcount_only=] rowcount_only
Указывает, возвращать ли только количество строк таблицы. Аргумент rowcount_only имеет тип smallint и может принимать следующие значения.Значение
[@full_or_fast=] full_or_fast
Метод, применяемый для вычисления количества строк. Аргумент full_or_fast имеет тип tinyint и может принимать следующие значения.Значение Описание 0
Выполняет полный подсчет с помощью функции COUNT(*).
1
Выполняет быстрый подсчет из sysindexes.rows. Подсчет строк в представлении sys.sysindexes происходит намного быстрее, чем подсчет строк в фактической таблице. Но поскольку представление sys.sysindexes обновляется с задержкой, количество строк в нем может оказаться неточным.
2 (по умолчанию)
Выполняет быстрый подсчет по условию, при котором сначала используется быстрый метод. Если быстрый метод дает неточные результаты, переключается на полный подсчет. Если значение expected_rowcount равно NULL и для получения значения используется хранимая процедура, всегда применяется полная функция COUNT(*).
- [ @shutdown_agent=] shutdown_agent
Указывает, требуется ли закрывать агент распространителя немедленно по окончании проверки. Аргумент shutdown_agent имеет тип bit и значение по умолчанию 0. Значение 0 указывает, что агент репликации не завершает работу. Значение 1 указывает, что агент репликации по окончании проверки статей завершает работу.
[ @publisher = ] 'publisher'
Задает издатель, отличный от SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.Примечание. Аргумент publisher не используется при запросе проверки издателя типа SQL Server.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение).
Замечания
Процедура sp_publication_validation используется при выполнении репликации транзакций.
Процедура sp_publication_validation может быть вызвана в любой момент времени после активации статей, связанных с публикацией. Данная процедура может запускаться вручную (единовременно) либо в составе регулярных планируемых заданий по проверке данных.
При работе приложения с немедленно обновляемыми подписками в ходе выполнения процедуры sp_publication_validation могут быть обнаружены случайные ошибки. Сначала в процедуре sp_publication_validation осуществляется подсчет строк или расчет контрольной суммы для издателя, а затем эти же операции выполняются для подписчика. Значения контрольных сумм и количества строк для издателя и подписчика могут различаться, так как после подсчета на издателе, но до подсчета на подписчике может сработать триггер немедленного обновления. Чтобы исключить возможность изменения значений для подписчика и издателя во время проверки публикации, остановите службу координатора распределенных транзакций Microsoft (MS DTC) на издателе во время проверки.
Разрешения
Хранимую процедуру sp_publication_validation могут выполнять только члены фиксированной серверной роли sysadmin и члены фиксированной роли базы данных db_owner.
См. также
Справочник
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
Другие ресурсы
How to: Validate Data at the Subscriber (Replication Transact-SQL Programming)