sp_droparticle (Transact-SQL)
適用於:SQL Server Azure 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 數據表中發行項的數據行,以判斷是否也應該卸除檢視或篩選。 如果檢視或篩選已自動產生,就會與發行項一起卸除。 如果已手動建立,則不會卸除。
執行 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
。