sp_droppublication (Transact-SQL)
删除发布及其关联的快照代理。 删除发布之前必须删除全部的订阅。 发布中的项目将自动删除。 此存储过程在发布服务器的发布数据库中执行。
语法
sp_droppublication [ @publication= ] 'publication'
[ , [ @ignore_distributor = ] ignore_distributor ]
参数
[ @publication= ] 'publication'
要删除的发布的名称。publication 的数据类型为 sysname,无默认值。 如果指定 all,则从发布数据库删除所有发布,那些具有订阅的发布除外。[ @ignore_distributor = ] ignore_distributor
标识为仅供参考。不提供支持。不保证以后的兼容性。
返回代码值
0(成功)或 1(失败)
注释
sp_droppublication 在快照复制和事务复制中使用。
sp_droppublication 以递归方式删除所有与发布相关联的项目,然后删除发布本身。 如果发布包含一个或更多对它的订阅,则不能删除。 有关如何删除订阅的信息,请参阅 如何删除推送订阅(复制 Transact-SQL 编程) 和 如何删除请求订阅(复制 Transact-SQL 编程)。
执行 sp_droppublication 删除发布的同时,不会从发布数据库删除已发布对象或从订阅数据库删除相应的对象。 必要时,使用 DROP <对象>手动删除这些对象。
示例
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2008R2';
SET @publication = N'AdvWorksProductTran';
-- Remove a transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_droppublication @publication = @publication;
-- Remove replication objects from the database.
USE [master]
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'publish',
@value = N'false';
GO
权限
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_droppublication。