sp_removedbreplication (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

此存储过程将删除 SQL Server 发布服务器实例的发布数据库上或 SQL Server 订阅服务器实例的订阅数据库上的所有复制对象。 在相应的数据库中执行,或如果是在另一个数据库上下文的同一个实例上执行,请指定应删除复制对象的数据库。 此过程不会从其他数据库(例如,分发数据库)中删除对象。

注意

只有当其他删除复制对象的方法都失败后,才应当使用此过程。

Transact-SQL 语法约定

语法

  
sp_removedbreplication [ [ @dbname = ] 'dbname' ]  
    [ , [ @type = ] type ]   

参数

[ @dbname = ] 'dbname' 数据库的名称。 dbname 的数据类型为 sysname,默认值为 NULL。 此参数值为 NULL 时,将使用当前数据库。

[ @type = ] type要删除其数据库对象的副本 (replica)类型。 类型nvarchar(5), 可以是以下值之一。

说明
tran 删除事务复制发布对象。
merge 删除合并复制发布对象。
两者 (默认值) 删除所有复制发布对象。

返回代码值

0 (成功) 或 1 (失败)

备注

sp_removedb副本 (replica)tion 用于所有类型的副本 (replica)。

还原没有副本 (replica)对象的副本 (replica)数据库时,sp_removedb副本 (replica)tion 非常有用。

不能对标记为只读的数据库使用sp_removedb副本 (replica)tion

权限

只有 sysadmin 固定服务器角色的成员才能执行sp_removedb副本 (replica)tion

示例

A. 删除 副本 (replica)tion 对象,AdventureWorks 副本 (replica) 订阅数据库

-- Remove replication objects from the subscription database on MYSUB.
DECLARE @subscriptionDB AS sysname
SET @subscriptionDB = N'AdventureWorks2022Replica'

-- Remove replication objects from a subscription database (if necessary).
USE master
EXEC sp_removedbreplication @subscriptionDB
GO

B. 删除 副本 (replica)tion 对象,AdventureWorks 副本 (replica) 订阅数据库

-- Remove replication objects from the subscription database on MYSUB.  
DECLARE @subscriptionDB AS sysname  
SET @subscriptionDB = N'AdventureWorksReplica'  
  
-- Remove replication objects from a subscription database (if necessary).  
USE master  
EXEC sp_removedbreplication @subscriptionDB  
GO  
  

另请参阅

禁用发布和分发
系统存储过程 (Transact-SQL)