sp_removedbreplication (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
此存储过程删除 SQL Server 发布服务器实例上的发布数据库上或 SQL Server 订阅实例上的订阅数据库上的所有复制对象。 在相应的数据库中执行 sp_removedbreplication
,或者,如果执行位于同一实例上的另一个数据库的上下文中,请指定应删除复制对象的数据库。 此过程不会从其他数据库(如分发数据库)中删除对象。
只有当其他删除复制对象的方法都失败后,才应当使用此过程。
语法
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