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


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 и может принимать одно из следующих значений.

    Значение

    Описание

    0

    Рассчитать контрольную сумму в формате SQL Server 7.0.

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

    Если статья отфильтрована горизонтально, вместо операции расчета контрольной суммы выполняется операция подсчета строк.

    1 (по умолчанию)

    Выполнить проверку только количества строк.

    2

    Выполнить проверку количества строк и двоичной контрольной суммы.

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

    Для подписчиков версии SQL Server 7.0 выполняется только проверка количества строк.

  • [@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)

Основные понятия

Проверка данных на подписчике