sp_removedbreplication (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

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

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

Transact-SQL 语法约定

语法

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

参数

[ @dbname = ] N'dbname'

数据库的名称。 @dbname为 sysname,默认值为 NULL. 使用当前数据库时 NULL

[ @type = ] N'type'

要删除其数据库对象的复制类型。 @type为 nvarchar(5),可以是以下值之一。

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

返回代码值

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

注解

sp_removedbreplication 用于所有类型的复制。

sp_removedbreplication 还原不需要还原复制对象的复制数据库时非常有用。

sp_removedbreplication 不能对标记为只读的数据库使用。

权限

只有 sysadmin 固定服务器角色的成员才能执行sp_removedbreplication

示例

删除副本订阅数据库中的 AdventureWorks2022 复制对象。

-- 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