Rel*_*DBA 5 sql-server transactional-replication
我已经在另一台服务器上恢复了数据库。我不想要以前数据库的任何事务订阅。我已经打电话了
exec sp_removedbreplication 'MyRestoredDB'
go
Run Code Online (Sandbox Code Playgroud)
并且
exec sp_cleanupdbreplication
go
Run Code Online (Sandbox Code Playgroud)
和
exec sp_replicationdboption 'MyRestoredDB','Publish','False',1
go
Run Code Online (Sandbox Code Playgroud)
但当我尝试时
truncate table dbo.sample
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
消息 4711,级别 16,状态 1,第 7 行 无法截断表“sample”,因为它已发布用于复制或启用了更改数据捕获。
我确认该数据库未启用 CDC。我还能做什么来执行截断?由于与问题无关的原因,不能选择删除。
尝试删除旧的订阅、所有发布,然后从数据库中删除复制,即
exec sp_dropsubscription --on all subscriptions
Run Code Online (Sandbox Code Playgroud)
然后
exec sp_droppublication --on all publications
Run Code Online (Sandbox Code Playgroud)
然后
exec sp_replicationdboption
Run Code Online (Sandbox Code Playgroud)
另外,请看一下这个问题:How to fix a badly up replication on MS SQL Server