sp_article_validation (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_article_validation [ @publication = ] 'publication'
    [ , [ @article = ] 'article' ]
    [ , [ @rowcount_only = ] type_of_check_requested ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @subscription_level = ] subscription_level ]
    [ , [ @reserved = ] reserved ]
    [ , [ @publisher = ] 'publisher' ]

Аргументы

  • [ @publication=] 'publication'
    Имя публикации, в которой находится статья. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.

  • [ @article=] 'article'
    Имя проверяемой статьи. Аргумент article имеет тип sysname и не имеет значения по умолчанию.

  • [ @rowcount_only=] type_of_check_requested
    Указывает, что возвращается только число строк таблицы. Аргумент type_of_check_requested имеет тип smallint, значение по умолчанию 1.

    Если 0, выполняется вычисление количества строк и контрольной суммы, совместимой с Microsoft SQL Server 7.0.

    Если равно 1, необходима только проверка по количеству строк.

    Если 2, выполняется проверка количества строк и контрольной суммы.

  • [ @full_or_fast=] full_or_fast
    Метод, применяемый для подсчета числа строк. Аргумент full_or_fast имеет тип tinyint и может принимать одно из следующих значений:

    Значение

    Описание

    0

    Выполняет полный подсчет при помощи функции COUNT(*).

    1

    Выполняет быстрый подсчет из sysindexes.rows. Подсчет строк по sysindexes выполняется быстрее, чем фактический подсчет строк по таблице. Однако sysindexes обновляется в фоновом режиме, поэтому результат может оказаться неточным.

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

    Выполняет условный быстрый подсчет, при котором сначала применяется быстрый метод, и, в том случае, если выявлены различия, производится полный подсчет строк. Если значение expected_rowcount равно NULL и хранимая процедура используется для получения этого значения, всегда используется полный COUNT(*).

  • [ @shutdown_agent=] shutdown_agent
    Указывает, будет ли агент распространителя завершен немедленно после завершения проверки. Аргумент shutdown_agent имеет тип bit и значение по умолчанию 0. Если равен 0, агент распространителя не завершает работу. Если равен 1, агент распространителя завершает работу немедленно после завершения проверки статьи.

  • [ @subscription_level=] subscription_level
    Указывает, будет ли проверка применяться к части подписчиков. Аргумент subscription_level имеет тип bit и значение по умолчанию 0. Если равен 0, проверка применяется ко всем подписчиком. Если равен 1, проверка применяется только к части подписчиков, определяемой вызовами хранимой процедуры sp_marksubscriptionvalidation в текущей открытой транзакции.

  • [ @reserved=] reserved
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

  • [ @publisher= ] 'publisher'
    Указывает издатель, отличный от Microsoft SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.

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

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

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

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Процедура sp_article_validation используется при репликации транзакций.

Процедура sp_article_validation вызывает сбор сведений о проверке для указанной статьи и отправляет запрос на проверку в журнал транзакции. Когда агент распространителя получает этот запрос, он сравнивает сведения для проверки, указанные в запросе, с таблицей подписчика. Результаты проверки отображаются в мониторе репликации и в виде предупреждений агента SQL Server.

Разрешения

Только пользователи, имеющие разрешение SELECT ALL на исходную таблицу проверяемой статьи, могут выполнять хранимую процедуру sp_article_validation.