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 предопределенных ролей базы данных.