Share via


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,則執行資料列計數和 MicrosoftSQL 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_levelbit,預設值是 0。如果是 0,就會將驗證套用於所有訂閱者。如果是 1,只會將驗證套用於在目前開啟交易中呼叫 sp_marksubscriptionvalidation 所指定的訂閱者子集。

  • [@reserved=] reserved
    僅供參考之用。不支援。我們無法保證未來的相容性。

  • [@publisher= ] 'publisher'
    指定非 MicrosoftSQL Server 發行者。publisher 是 sysname,預設值是 NULL。

    [!附註]

    當在 SQL Server 發行者上要求進行驗證時,不應使用 publisher。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_article_validation 用於交易式複寫中。

sp_article_validation 會造成在指定的發行項上收集驗證資訊,以及將驗證要求公佈到交易記錄中。當散發代理程式收到這個要求時,散發代理程式會比較要求中的驗證資訊與訂閱者資料表。驗證結果會顯示在複寫監視器和 SQL Server Agent 警示中。

權限

只有具備發行項來源資料表之 SELECT ALL 權限的使用者可以執行 sp_article_validation