sp_article_validation (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
起始指定發行項的數據驗證要求。 這個預存程式會在發行集資料庫的發行者端和訂閱資料庫的訂閱者端執行。
語法
sp_article_validation
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @rowcount_only = ] rowcount_only ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @subscription_level = ] subscription_level ]
[ , [ @reserved = ] reserved ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
引數
[ @publication = ] N'publication'
發行項所在的發行集名稱。 @publication為 sysname,沒有預設值。
[ @article = ] N'article'
要驗證之發行項的名稱。 @article為 sysname,沒有預設值。
[ @rowcount_only = ] rowcount_only
指定是否只傳回數據表的數據列計數。 @rowcount_only為 smallint,預設值為 1
。
- 如果
0
為 ,請執行數據列計數和 SQL Server 7.0 相容的總和檢查碼。 - 如果
1
為 ,則只執行數據列計數檢查。 - 如果
2
為 ,請執行數據列計數和二進位總和檢查碼。
[ @full_or_fast = ] full_or_fast
用來計算數據列計數的方法。 @full_or_fast為 tinyint,可以是下列其中一個值:
值 | Description |
---|---|
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_level為 bit,預設值為 0
。
- 如果
0
為 ,則驗證會套用至所有訂閱者。 - 如果
1
為 ,則驗證只會套用至目前開啟交易中呼叫sp_marksubscriptionvalidation
所指定的訂閱者子集。
[ @reserved = ] 保留
僅供參考之用。 不支援。 我們無法保證未來的相容性。
[ @publisher = ] N'publisher'
指定非 SQL Server 發行者。 @publisher為 sysname,預設值為 NULL
。
在 SQL Server 發行者上要求驗證時,不應該使用@publisher。
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_article_validation
用於事務複製。
sp_article_validation
會導致在指定的發行項上收集驗證資訊,並將驗證要求張貼至事務歷史記錄。 當 散發代理程式 收到此要求時,散發代理程式 會比較要求中的驗證資訊與訂閱者數據表。 驗證的結果會顯示在復寫監視器和 SQL Server Agent 警示中。
權限
只有具有 SELECT ALL
所驗證發行項目之源資料表權限的使用者才能執行 sp_article_validation
。