我正在尝试截断表,但失败,并显示以下错误Cannot truncate table 'Subscriptions' because it is published for replication or enabled for Change Data Capture.
不确定如何解决此错误,此问题与MS SQL SERVER 2014有关
我寻找了这个Google,但没有找到一个明确的答案示例https://www.sqlservercentral.com/Forums/Topic1701086-2799-1.aspx
https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=80545
有一个简单的解决方案,因为我没有数据库的管理特权,因为它是由第三方托管的
答案 0 :(得分:1)
在某些情况下,例如复制/外键约束等,不能使用截断。
根据Microsoft documentation,您需要使用删除。
限制
您不能在以下表上使用TRUNCATE TABLE:
由FOREIGN KEY约束引用。 (您可以截断一个表 具有引用自身的外键。)
参与索引视图。
使用事务复制或合并复制进行发布。
对于具有一个或多个这些特征的表,请使用DELETE 声明。
TRUNCATE TABLE无法激活触发器,因为该操作确实 不记录单个行的删除。有关更多信息,请参见CREATE。 触发器(Transact-SQL)。
在Azure SQL数据仓库和并行数据仓库中:
EXPLAIN语句中不允许使用TRUNCATE TABLE。
TRUNCATE TABLE不能在事务内部运行。
答案 1 :(得分:1)
对于此错误,您可以参考以下链接。
它清楚地说明了该错误发生的条件以及如何解决该错误,即通过在该表上禁用“更改数据捕获”来实现。