sp_dropsubscription (Transact-SQL)
卸除對於發行者的特定發行項、發行集或訂閱集的訂閱。這個預存程序執行於發行集資料庫的發行者端。
語法
sp_dropsubscription [ [ @publication= ] 'publication' ]
[ , [ @article= ] 'article' ]
, [ @subscriber= ] 'subscriber'
[ , [ @destination_db= ] 'destination_db' ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @reserved= ] 'reserved' ]
引數
[ @publication= ] 'publication'
這是相關聯的發行集名稱。publication 是 sysname,預設值是 NULL。如果是 all,指定訂閱者的所有發行集之所有訂閱都會取消。publication 是必要的參數。[ @article= ] 'article'
這是發行項的名稱。article 是 sysname,預設值是 NULL。如果是 all,便會卸除每個指定發行集和訂閱者的所有發行項之訂閱。對允許立即更新的發行集,使用 all。[ @subscriber= ] 'subscriber'
這是將卸除訂閱的訂閱者名稱。subscriber 是 sysname,沒有預設值。如果是 all,就會卸除所有訂閱者的所有訂閱。[ @destination_db= ] 'destination_db'
這是目的地資料庫的名稱。destination_db 是 sysname,預設值為 NULL。如果是 NULL,就會卸除這個訂閱者的所有訂閱。[ @ignore_distributor = ] ignore_distributor
僅供參考之用。不支援。我們無法保證未來的相容性。[ @reserved= ] 'reserved'
僅供參考之用。不支援。我們無法保證未來的相容性。
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_dropsubscription 用於快照式和交易式複寫中。
如果您在立即同步發行集中卸除發行項的訂閱,則除非您卸除發行集所有發行項的訂閱,再同時將它們全部重新加入,否則便無法重新加入它們。
範例
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- This batch is executed at the Publisher to remove
-- a pull or push subscription to a transactional publication.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
USE [AdventureWorks]
EXEC sp_dropsubscription
@publication = @publication,
@article = N'all',
@subscriber = @subscriber;
GO
權限
只有系統管理員 (sysadmin) 固定伺服器角色、db_owner 固定資料庫角色的成員,或建立訂閱的使用者,才能夠執行 sp_dropsubscription。