sp_droparticle (Transact-SQL)
從快照式或交易式發行集中卸除發行項。如果發行項有一或多項訂閱,便不能移除它。這個預存程序執行於發行集資料庫的發行者端。
語法
sp_droparticle [ @publication= ] 'publication'
, [ @article= ] 'article'
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @force_invalidate_snapshot= ] force_invalidate_snapshot ]
[ , [ @publisher = ] 'publisher' ]
[ , [ @from_drop_publication = ] from_drop_publication ]
引數
[@publication=] 'publication'
這是要卸除之包含發行項的發行集名稱。publication 是 sysname,沒有預設值。[@article=] 'article'
這是要卸除的發行項名稱。article 是 sysname,沒有預設值。[@ignore_distributor = ] ignore_distributor
僅供參考之用。不支援。我們無法保證未來的相容性。[@force_invalidate_snapshot = ] force_invalidate_snapshot
認可這個預存程序所採取的動作可能使現有的快照集失效。force_invalidate_snapshot 是 bit,預設值是 0。0 指定發行項的變更不會使快照集失效。如果預存程序偵測到變更需要新的快照集,就會發生錯誤,且不會進行任何變更。
1 指定發行項的變更可能使快照集失效,如果有現有的訂閱需要新的快照集,便提供要標示為已棄用之現有快照集的權限,此時會產生新的快照集。
[@publisher= ] 'publisher'
指定非 Microsoft SQL Server 發行者。publisher 是 sysname,預設值是 NULL。[!附註]
當在 SQL Server 發行者上變更發行項屬性時,不應使用 publisher。
[@from_drop_publication= ] from_drop_publication
僅供參考之用。不支援。我們無法保證未來的相容性。
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_droparticle 用在快照集和交易式複寫中。
如果是水平篩選的發行項,sp_droparticle 會檢查 sysarticles (Transact-SQL) 資料表中之發行項的 type 資料行來判斷是否也應該卸除檢視或篩選。如果檢視或篩選是自動產生的,就會隨著發行項而卸除。如果它是手動建立的,便不會卸除。
執行 sp_droparticle 來卸除發行集中的發行項,並不會從發行集資料庫中移除物件,也不會從訂閱資料庫中移除對應的物件。必要的話,請利用 DROP <object> 來手動移除這些物件。
範例
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
-- Drop the transactional article.
USE [AdventureWorks2008R2]
EXEC sp_droparticle
@publication = @publication,
@article = @article,
@force_invalidate_snapshot = 1;
GO
權限
只有系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_droparticle。