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


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.

    ms173543.note(ru-ru,SQL.90).gifПримечание.
    Аргумент 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)

Справка и поддержка

Получение помощи по SQL Server 2005