无法删除 table <TableName>,因为它正用于复制

Cannot drop the table <TableName> because it is being used for replication

我无法修改数据库中 table 的结构。数据库用于 复制。我收到此错误

如错误所述,table 用于复制,这意味着它是复制发布者中的一篇文章。为了能够修改 table 您应该将其从复制中删除,然后更新架构,然后再次将其添加到复制中。再次添加后,您必须重新初始化订阅才能获取修改后的 table 架构。

我在复制时遇到了这个错误

Cannot drop the table 'dbo.repl_application_camp_choice' because it is being used for replication. (Source: MSSQLServer, Error number: 3724)

我尝试的第一件事 - 错误地 - 是在订阅者数据库中手动删除 table。

但是还是出现了同样的错误。

接下来我尝试的是:

USE [ORCASTG]
GO
EXEC sp_msunmarkreplinfo 'dbo.repl_application_camp_choice'

--Msg 3724, Level 16, State 3, Line 5
--Cannot drop the table 'dbo.repl_application_camp_choice' because it is being used for replication.

但是没用

然后我试了这个:

USE [ORCASTG]
GO
DECLARE @subscriptionDB AS sysname  
SET @subscriptionDB = N'ORCASTG'  

USE master  
EXEC sp_removedbreplication @subscriptionDB  
GO  

USE [ORCASTG]
GO
DROP TABLE IF EXISTS [dbo].[repl_application_camp_choice]
GO

这成功了


我得到了 here and here

的帮助

here听说了一些事情,但我没有尝试过。

  1. 将其设置为离线(数据库),然后您应该可以删除它(table)。
  2. exec sp_removedbreplication 'DB_NAME'