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


sp_publication_validation (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Запускает запрос на проверку правильности всех статей в указанной публикации. Эта хранимая процедура выполняется на издателе в базе данных публикации.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_publication_validation
    [ @publication = ] N'publication'
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Аргументы

[ @publication = ] N'publication'

Имя публикации. @publication — sysname без значения по умолчанию.

[ @rowcount_only = ] rowcount_only

Указывает, следует ли возвращать только строку для таблицы. @rowcount_only имеет небольшой размер и может быть одним из следующих значений.

значение Описание
0 Выполните контрольную сумму, совместимую с SQL Server 7.0.

Примечание. При горизонтальной фильтрации статьи операция строк выполняется вместо операции контрольной суммы.
1 (по умолчанию) Выполнить проверку только количества строк.
2 Выполнить проверку количества строк и двоичной контрольной суммы.

[ @full_or_fast = ] full_or_fast

Метод, используемый для вычисления числа строк. @full_or_fast крошечный и может быть одним из следующих значений.

значение Описание
0 Выполняет полное число использования COUNT(*).
1 Выполняет быстрый подсчет из sysindexes.rows. Подсчет строк в sys.sysindexes быстрее, чем подсчет строк в фактической таблице. Однако, так как sys.sysindexes неявно обновляется, строка может не быть точной.
2 (по умолчанию) Выполняет быстрый подсчет по условию, при котором сначала используется быстрый метод. Если быстрый метод дает неточные результаты, переключается на полный подсчет. Если expected_rowcount используется NULL хранимая процедура для получения значения, всегда используется полная COUNT(*) процедура.

[ @shutdown_agent = ] shutdown_agent

Указывает, должен ли агент распространения завершить работу сразу после завершения проверки. @shutdown_agent бит с значением по умолчанию0.

  • Если 0агент репликации не завершает работу.
  • Если 1агент репликации завершает работу после проверки последней статьи.

[ @publisher = ] N'publisher'

Указывает издатель, отличный от SQL Server. @publisher — sysname с значением по умолчаниюNULL.

@publisher не следует использовать при запросе проверки на издателе SQL Server.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_publication_validation используется в репликации транзакций.

sp_publication_validation можно вызывать в любое время после активации статей, связанных с публикацией. Данная процедура может запускаться вручную (единовременно) либо в составе регулярных планируемых заданий по проверке данных.

Если у вашего приложения есть немедленно обновляемые подписчики, sp_publication_validation может возникнуть спрогнозная ошибка. sp_publication_validation Сначала вычисляет число строк или контрольную сумму на издателе, а затем на подписчике. Значения контрольных сумм и количества строк для издателя и подписчика могут различаться, так как после подсчета на издателе, но до подсчета на подписчике может сработать триггер немедленного обновления. Чтобы убедиться, что значения на подписчике и издателе не изменяются при проверке публикации, остановите службу координатора распределенных транзакций Майкрософт (MS DTC) на издателе во время проверки.

Разрешения

Могут выполняться sp_publication_validationтолько члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.