sp_droparticle (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

從快照式或交易式發行集卸除發行項。 如果有一或多個訂閱存在,就無法移除發行項。 這個預存程式會在發行集資料庫的發行者端執行。

Transact-SQL 語法慣例

語法

sp_droparticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @from_drop_publication = ] from_drop_publication ]
[ ; ]

引數

[ @publication = ] N'publication'

包含要卸除之發行項的發行集名稱。 @publication為 sysname,沒有預設值。

[ @article = ] N'article'

要卸除之發行項的名稱。 @article為 sysname,沒有預設值。

[ @ignore_distributor = ] ignore_distributor

僅供參考之用。 不支援。 我們無法保證未來的相容性。

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

確認此預存程式所採取的動作可能會使現有的快照集失效。 @force_invalidate_snapshot為 bit,預設值為 0

  • 0 指定發行項的變更不會造成快照集無效。 如果預存程式偵測到變更確實需要新的快照集,就會發生錯誤,而且不會進行任何變更。

  • 1 會指定發行項的變更可能會導致快照集無效,而且如果有現有的訂用帳戶需要新的快照集,則提供現有快照集標示為過時和產生新快照集的許可權。

[ @publisher = ] N'publisher'

指定非 SQL Server 發行者。 @publisher為 sysname,預設值為 NULL

變更 SQL Server 發行者上的發行項屬性時,不應該使用此參數。

[ @from_drop_publication = ] from_drop_publication

僅供參考之用。 不支援。 我們無法保證未來的相容性。

傳回碼值

0 (成功)或 1 (失敗)。

備註

sp_droparticle 用於快照式和事務複製。

針對水平篩選的發行項,sp_droparticle檢查 type sysarticles (Transact-SQL) 數據表中的發行項數據行,以判斷是否也應該卸除檢視或篩選。 如果檢視或篩選已自動產生,就會與發行項一起卸除。 如果已手動建立,則不會卸除。

執行 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 [AdventureWorks2022]
EXEC sp_droparticle 
  @publication = @publication, 
  @article = @article,
  @force_invalidate_snapshot = 1;
GO

權限

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