sp_droparticle (Transact-SQL)

從快照式或交易式發行集中卸除發行項。如果發行項有一或多項訂閱,便不能移除它。這個預存程序執行於發行集資料庫的發行者端。

主題連結圖示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'
    指定非 MicrosoftSQL 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 [AdventureWorks]
EXEC sp_droparticle 
  @publication = @publication, 
  @article = @article,
  @force_invalidate_snapshot = 1;
GO

權限

只有系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_droparticle