sp_publication_validation (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Запускает запрос на проверку правильности всех статей в указанной публикации. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Соглашения о синтаксисе 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'
Имя публикации. публикация — sysname, без значения по умолчанию.
[ @rowcount_only = ] 'rowcount_only'
Указывает, следует ли возвращать только строку для таблицы. rowcount_only имеет небольшой размер и может быть одним из следующих значений.
значение | Описание |
---|---|
0 | Выполните контрольную сумму, совместимую с SQL Server 7.0. Примечание. При горизонтальной фильтрации статьи операция строк выполняется вместо операции контрольной суммы. |
1 (по умолчанию) | Выполнить проверку только количества строк. |
2 | Выполнить проверку количества строк и двоичной контрольной суммы. Примечание. Для подписчиков SQL Server версии 7.0 выполняется только проверка числа строк. |
[ @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 = ] 'publisher'
Указывает издатель, отличный от SQL Server. publisher имеет имя sysname с значением NULL по умолчанию.
Примечание.
издатель не должен использоваться при запросе проверки на издателе SQL Server.
Значения кода возврата
0 (успешно) или 1 (сбой)
Замечания
sp_publication_validation используется в репликации транзакций.
sp_publication_validation можно вызывать в любое время после активации статей, связанных с публикацией. Данная процедура может запускаться вручную (единовременно) либо в составе регулярных планируемых заданий по проверке данных.
Если у вашего приложения есть немедленно обновляемые подписчики, sp_publication_validation может обнаружить спрогнозные ошибки. sp_publication_validation сначала вычисляет число строк или контрольную сумму на издателе, а затем на подписчике. Значения контрольных сумм и количества строк для издателя и подписчика могут различаться, так как после подсчета на издателе, но до подсчета на подписчике может сработать триггер немедленного обновления. Чтобы исключить возможность изменения значений для подписчика и издателя во время проверки публикации, остановите службу координатора распределенных транзакций Microsoft (MS DTC) на издателе во время проверки.
Разрешения
Только члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных могут выполняться sp_publication_validation.
См. также
Проверка данных на подписчике
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)