sp_publication_validation (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.