无法重命名“复制”的列,可能是由于CDC

时间:2010-02-21 18:55:06

标签: sql-server sql-server-2008 replication cdc change-data-capture

我想运行以下重命名

EXECUTE sp_rename N'dbo.Semesters.IsPublic', N'Tmp_ShowNCs', 'COLUMN' 

我收到错误

Msg 4928, Level 16, State 1, Procedure sp_rename, Line 547
Cannot alter column 'IsPublic' because it is 'REPLICATED'.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command.  The results, if any, should be discarded.

我已为此表启用了更改数据捕获(CDC)。可能这就是为什么这个专栏被“复制”了。 SSMS显示replicated = yes。

所以我想知道这是正常还是错误。我想保留CDC,但重命名此列。除了删除现有的CDC信息并重新启用CDC之外,我还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

你做错了。您必须关闭表上的CDC(DB上的CDC已打开),然后更改列,然后在表上打开CDC。 要解决您的问题,您必须打开数据库上的CDC,然后在表上,关闭表上的CDC,重命名列,打开表上的CDC。