sp_article_validation (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。